但行好事  莫问前程

Eclipse中使用maven构建多模块项目

在平时的项目开发中为了便于后期的维护,我们一般会进行分模块开发,最常见的就是分为domain(实体域模块)、dao(数据库访问层模块)、service(业务逻辑模块)、web(视图模块),这样分模块划分之后,各个模块之间的职责会比较明确,后期维护起来也相对比较容易,下面就说说在Eclipse中如何使用Maven来构建一个多模块项目。

一. 创建一个父项目

NEW -->project-->maven-->maven Project,点击下一步,进入new maven ProjectSelect project name and location界面,如下图所示:

直接下一步到Select an Archetype界面,如下图所示:

在这个界面中选择maven-Archetype-site-simple,然后选择下一步,进入选择Enter a group id for the artifact的界面,如下图所示:

group Idartifact Id中输入你的groupartifact名称。我用的分别是org.light4jmaven-parent,选择完成。这时会在Eclipse中生成一个项目,项目名是maven-parent,此时maven-parentpom.xml内容如下所示:

<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>

  <groupId>org.light4j</groupId>
  <artifactId>maven-parent</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>

  <distributionManagement>
    <site>
      <id>website</id>
      <url>scp://webhost.company.com/www/website</url>
    </site>
  </distributionManagement>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
</project>

二. 创建子项目

2.1 将项目maven-parent中的src文件夹删除,只保留pom.xml(主要看个人需要,可有可无,不影响)。
2.2 选中项目maven-parent,点击右键,选择NEW -->project-->maven-->maven Module,如下图所示

点击下一步,在出现的界面中输入子模块的名称maven-A,如下图所示:

点击下一步,出现Select an Archetype界面。这时选择maven-Archetype-site-quickStart或者maven-Archetype-webapp(构建web层时使用),如下图所示:


然后选择Finish,即生成子项目maven-A
这时maven-parentpom.xml文件如下面所示(多了个modules标签和里面子标签的内容):

<?xml version="1.0" encoding="UTF-8"?>
<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>

  <groupId>org.light4j</groupId>
  <artifactId>maven-parent</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>

  <distributionManagement>
    <site>
      <id>website</id>
      <url>scp://webhost.company.com/www/website</url>
    </site>
  </distributionManagement>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <modules>
    <module>maven-A</module>
  </modules>
</project>

这时构建maven-parent的子项目完成,构建其他的子项目和此类似。在构建第二个子项目maven-B时可能在maven-parent中没有及时出现,这时只要刷新下maven-parent就可以了。

三. 总结

其实在构建多模块的项目时,父项目的类型可以是任意的类型。对于这些非常规类型的项目,如果想要成为父项目,需要做如下一些改动:

1.将pom.xml文件中的<packaging>jar</packaging>改为<packaging>pom</packaging>,若不换为pom则在打包的时候父项目会产生一个target文件;如果没有<packaging>pom</packaging>的可以在<version>0.0.1-SNAPSHOT</version>后面添加上这句话即可。

2.删除除pom.xml外的所有文件,其中JRE System Library是不能直接删除的,需要选择中,并单击右键Bulid Path-->Remove from bilud path即可移除。

其实能否在一个项目下创建子模块,主要取决于是否有<packaging>pom</packaging>这个配置。如果有这个配置则任何项目都可以创建子模块,maven在判断一个项目是否可以创建子模块其实是取决于这个配置的。

打赏
欢迎关注人生设计师的微信公众账号
公众号ID:longjiazuoA

未经允许不得转载:人生设计师 » Eclipse中使用maven构建多模块项目

分享到:更多 ()

人生设计师-接受不同的声音

联系我关于我