使用Maven建立工程

使用Maven建立工程

Maven能够建立Java工程,也能够建立Java Web工程,下面详细介绍一下。java

注意:如下演示使用的是JDK1.7版本,不要与上一篇博客搞混,本身安装的哪一个版本的JDK,就使用哪一个版本的JDK。web

1、建立Java工程

一、New项目

右键new other,搜索Maven,在Maven目录下选择Maven Project,点击Next,以下图:apache

二、选择项目名称和空间

选择项目要使用的东西,只勾选User default Workspace location,另外两个不作勾选。如图有选项的解释。
骨架:至关因而项目模板。以下图:api

三、选择骨架app

这里咱们要建立的是Java项目,因此选择quickstart结尾的骨架,而后next。以下图:框架

四、设置项目坐标

Group Id:项目分组ID,其实就是包名。
Artifact Id:项目名称
Version:项目版本号。
Package:包名,根据上面的group id 和Artifact id 自动生成,不用填写。
这些信息填写完成,点击Finish。eclipse

SNAPSHOT:快照版本。不稳定版本,常常涉及修改的版本,可能一天都会修改多个版本。
RELEASE:发布版本。稳定版本,没有项目更新和bug的版本,若是后期生产环境下出现bug或有新的功能,须要发布新的 Release版本。
第一次建立工程会花费一段时间,由于骨架也须要下载依赖文件。webapp

五、修改项目JDK版本

因为Maven工具自己的缘由,新建立的项目默认都使用的是1.5版本的JDK,这就须要咱们本身手动修改一下JDK以及JRE的版本。maven

1.修改JRE版本

在工程上右键,选择Properties,出现如图界面,而后选择Java build Path,在Libraries中找到JRE选中,点击Edit,进行编辑了,选中本身安装的JRE,点击Finish,点击OK,便可修改完成。工具

2.修改JDK版本

在如图界面,找到Java Compiler,将JDK版本改到本身安装的版本,点击OK便可。

6.修改eclipse视图

将Eclipse的目录视图改为包视图,在window-showview中,修改为以下视图。

2、建立Web工程

一、建立web工程

建立web项目和Java项目前面的步骤都同样,只是在选择项目骨架的时候,选择web项目骨架便可。当项目建立完成以后,步骤有所不一样。Web项目须要修改JRE版本,JDK版本,Maven中Project Facets中Java的版本。以下图:

二、关闭校验

由于Eclipse中的校验级别很高,经常会无故的报错,这里建议将全部的校验给关闭。如图操做。

三、目录结构

main目录下是项目的主要代码。
src/main/java下存放Java代码。
src/main/resources下存放配置文件。
test目录下存放测试相关的代码。
target目录下存放编译输出后的代码。
webapp下存放Web应用相关代码。
pom.xml是Maven项目的配置文件。

3、配置文件pom.xml

由于这个配置文件是Maven的核心,所以有必要详细解读一下pom.xml,来先看一下上面的几个:

一、modelVersion

指定了当前Maven模型的版本号,对于Maven2和Maven3来讲,它只能是4.0.0

二、groupId

顾名思义,这个应该是公司名或是组织名。通常来讲groupId是由三个部分组成,每一个部分之间以"."分隔,第一部分是项目用途,好比用于商业的就是"com",用于非营利性组织的就是"org";第二部分是公司名,好比"tengxun"、"baidu"、"alibaba";第三部分是你的项目名。

三、artifactId

能够认为是Maven构建的项目名,好比你的项目中有子项目,就可使用"项目名-子项目名"的命名方式

四、version

版本号,SNAPSHOT意为快照,说明该项目还在开发中,是不稳定的版本。在Maven中很重要的一点是groupId、artifactId、version三个元素生成了一个Maven项目的基本坐标,这很是重要。

五、其余

在上面的这些元素以外,还有一些元素,一样罗列一下:

1.packing

项目打包的类型,可使jar、war、rar、ear、pom,默认是jar

2.dependencies和dependency

前者包含后者。前面说了,Maven的一个重要做用就是统一管理jar包,为了一个项目能够build或运行,项目中不可避免的,会依赖不少其余的jar包,在Maven中,这些依赖就被称为dependency。

3.properties

properties是用来定义一些配置属性的,例如project.build.sourceEncoding(项目构建源码编码方式),能够设置为UTF-8,防止中文乱码,也可定义相关构建版本号,便于往后统一升级。

4.build

build表示与构建相关的配置,好比build下有finalName,表示的就是最终构建以后的名称。

六、示例

下面是阿里DATAX的一个pom文件,拿过来给你们看成示例展现。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.alibaba.datax</groupId>
        <artifactId>datax-all</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

    <artifactId>datax-core</artifactId>
    <name>datax-core</name>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>com.alibaba.datax</groupId>
            <artifactId>datax-transformer</artifactId>
            <version>${datax-project-version}</version>
            <exclusions>
                <exclusion>
                    <artifactId>slf4j-log4j12</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>commons-configuration</groupId>
            <artifactId>commons-configuration</artifactId>
            <version>${commons-configuration-version}</version>
        </dependency>
        <dependency>
            <groupId>commons-cli</groupId>
            <artifactId>commons-cli</artifactId>
            <version>${commons-cli-version}</version>
        </dependency>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.9.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>fluent-hc</artifactId>
            <version>4.4</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </dependency>
        <dependency>
            <groupId>org.codehaus.janino</groupId>
            <artifactId>janino</artifactId>
            <version>2.5.16</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>1.8.5</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-api-mockito</artifactId>
            <version>1.4.10</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-module-junit4</artifactId>
            <version>1.4.10</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>2.1.9</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.alibaba.datax.core.Engine</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>

            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.alibaba.datax.core.Engine</mainClass>
                        </manifest>
                    </archive>
                    <finalName>datax</finalName>
                    <descriptors>
                        <descriptor>src/main/assembly/package.xml</descriptor>
                    </descriptors>
                </configuration>

                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- compiler plugin -->
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <encoding>${project-sourceEncoding}</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

4、利用Maven引入三方框架

一、查找框架坐标

能够从框架官网查找,或前往maven的官方仓库查找:http://mvnrepository.com/
把坐标写到pom.xml文件中的 <dependcies>内部。以下图:

二、Jar下载

写完坐标以后保存时,会自动下载pom文件中配置好的框架及框架的依赖jar包。

三、Jar包保存

下载下来的文件存放在本地仓库中:

上一篇:Maven介绍及安装

下一篇:Maven私服

相关文章
相关标签/搜索