在Eclipse中建立Maven多模块工程

若是,你须要建立多个项目,项目之间即独立又有关系,那么建立一个Maven多模块项目是个很是好的选择,也很是cool!怎么在Eclipse里面建立多模块工程,以及须要注意哪些地方,我在这里作个简单的介绍。程序员

1、准备

若想在Eclipse里面作这些的话,那么在作这一切前,请确认你是否已经在eclipse里面安装了maven插件。若是没有装插件,那只能经过命令行去作了。apache

好,如今假设已经在Eclipse里面装了maven插件,那么咱们一块儿用Eclipse来建立Maven多模块项目吧!api

2、先建立父项目

  1. 在Eclipse里面New -> Maven Project 
  2. 在弹出界面中选择“Create a simple project”
  3. 设置工程的参数,见下图 
    Params Settingseclipse

    • Group Id: com.example
    • Artifact Id: multi-modules-demo
    • Packaging: pom
    • Name: Multi Modules Demo
  4. 点击完成

这样,咱们就按常规模版建立了一个Maven工程。咱们还须要对这个工程进行修改。maven

由于,这是一个父项目,不须要有什么源码,那么,咱们在Eclipse中将这个工程下的不用的目录都删除,仅留下 pom.xml 文件就好了。优化

3、建立子项目

  1. 选中刚建的父项目,在弹出菜单中点击 New -> Maven Module ;
  2. 如图配置 
    child settings
  3. 使用默认的Archetype(默认:GroupId:org.apache.maven.archetypes,Artifact Id:maven-archetype-quickstart)
  4. 完成工程配置,见下图 
    Params Settings
  5. 点击完成

这样一个子项目就建立完成了,在文件系统中,子项目会建在父项目的目录中。在父目录中运行 mvn test 等命令,全部的子项目都会按顺序执行。ui

细心一点的人,可能会发现,经过这个步骤建立子项目的同时,会修改父项目的 pom.xml ,增长了相似下面的信息:spa

<modules>
  	    <module> module-children1-demo</module>
</modules>

这个信息,就是标记有哪些子模块。插件

重复建立子项目的步骤,能够建立多个子项目。命令行

4、优化配置

虽然上面的步骤,能够完成多模块的建立,可是建立出来的多模块,在一个程序员的眼里,仍是挺别扭的,怎么回事呢?对,存在重复。那让咱们重构吧。

按上面步骤建立的子项目,在 pom.xml 中有个 parent 节点,因此,他能够继承父项目的相关信息。没错,父子项目中存在继承关系。

在子项目的 pom.xml 中,子项目的 groupId 和 version 通常和父项目相同,那么能够把子项目的这两个参数删除,这样会自动继承父项目的取值。

一样,若是其余的一些属性,全部子项目都是同样的,那么能够上移到父项目中设置,子项目中无需重复设置。好比:<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 能够仅在父项目中设置一次。

除了这种状况之外,还有一种状况,就是依赖和插件。依赖和插件的状况是这样,某一个依赖或插件可能会被大部分子项目所使用,可是也可能有些子项目不须要使用,这样使用上述的方式,简简单单地进行继承就不合适了。

Manen提供 dependencyManagement 和 pluginManagement 两个标签。使用这两个标签,能够在父项目中统一管理依赖和插件的配置参数,好比版本号啥的。而在子项目中,仅需列出须要使用的依赖和插件的 groupId 和 artifactId 就能够了,其余信息会自动从父项目管理的信息里面获取。

看例子,父项目中:

<dependencyManagement>
  <dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.5</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.5</version>
    </dependency>   
  </dependencies>
</dependencyManagement>

在子项目中:

<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
  </dependency>
</dependencies>

4、命令行建立

上面就是在Eclipse里面建立多模块的步骤,和一些优化配置。

其中,具体的步骤能够根据实际状况进行适当的修改,好比选择 Archetype 时,能够根据须要,选择适当的 Archetype 

上述步骤中的一些环节,也能够先经过命令行来生成雏形,而后再修改 pom.xml 来实现。

相关命令为:

mvn archetype:generate -DarchetypeCatalog=internal -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-quickstart

工程建立后须要修改 pom.xml .修改方式,能够参考上面说到的内容。

相关文章
相关标签/搜索