使用Maven创建工程 原

Maven可以创建Java工程,也可以创建Java Web工程,下面详细介绍一下。

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

一、创建Java工程

1、New项目

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

2、选择项目名称和空间

选择项目要使用的东西,只勾选User default Workspace location,另外两个不做勾选。如图有选项的解释。 骨架:相当于是项目模板。如下图:

3、选择骨架

这里我们要创建的是Java项目,所以选择quickstart结尾的骨架,然后next。如下图:

4、设置项目坐标

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

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

5、修改项目JDK版本

由于Maven工具本身的原因,新创建的项目默认都使用的是1.5版本的JDK,这就需要我们自己手动修改一下JDK以及JRE的版本。

1.修改JRE版本

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

2.修改JDK版本

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

6.修改eclipse视图

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

二、创建Web工程

1、创建web工程

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

2、关闭校验

因为Eclipse中的校验级别很高,常常会无端的报错,这里建议将所有的校验给关闭。如图操作。

3、目录结构

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

三、配置文件pom.xml

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

1、modelVersion

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

2、groupId

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

3、artifactId

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

4、version

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

5、其他

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

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,表示的就是最终构建之后的名称。

6、示例

下面是阿里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>

四、利用Maven引入三方框架

1、查找框架坐标

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

2、Jar下载

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

3、Jar包保存

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券