史上最全的 Maven 教程 - 08 - Maven 聚合 ( 多模块工程 )

版权声明:原创不易,转载请添加文章原链接,谢谢 https://blog.csdn.net/zhongxi7860/article/details/82318913

Maven 聚合

在开发2个以上模块的时候,每个模块都是一个 Maven Project。比如搜索平台,学习平台,考试平台。

开发的时候可以自己管自己独立编译,测试,运行。但如果想要将他们整合起来,我们就需要一个聚合工程。

比如:
    maven-parent (Maven Project)
          |- maven-son1 (Maven Module)
          |- maven-son2 (Maven Module)
          |- …

(1) 父模块的创建.

父模块一般承担聚合模块和统一管理依赖的作用,没有实际代码和资源文件.

父模块就是创建一个普通的 Maven Project , 此处省略.

但是需要注意的是: 父模块的打包方式必须是 pom.

这里写图片描述

(2) 子模块的创建

① 子模块需要创建为 Maven Module 项目.

这里写图片描述
② 选择该子模块所属的父模块

这里写图片描述

③ 打包方式 : web 项目需要打 war 包,其他的比如 dao 层, service 层, entity 层都可以打 jar 包.

(3) 项目结构

完成后的项目结构如下:

这里写图片描述

实际的目录结构:子模块其实是包含在父模块文件夹里面的.

(4) 父模块的 pom 文件.

指明它的子模块都有哪些.

     <modules>
           <module>PYG-pojo</module>
           <module>PYG-dao</module>
           <module>PYG-Commons</module>
           ...
     </modules>

(5) 子模块的 pom 文件

指明它的父模块是谁.

     <modelVersion>4.0.0</modelVersion>
     <!-- 指定它的父模块是谁 -->
     <parent>
           <groupId>it.com.pyg</groupId>
           <artifactId>PYG-Parent</artifactId>
           <version>0.0.1-SNAPSHOT</version>
     </parent>
     <!-- 当前子模块的名字 -->
     <artifactId>PYG-dao</artifactId>

(6) 聚合工程的依赖传递

一般都是在父模块的 pom 中定义项目用到的依赖以及版本,
然后在子模块的 pom 中, 需要什么依赖就直接引入, 不引入版本号, 依赖会自动从父模块中传递到子模块中.

① 父模块中定义依赖

     <!-- 统一定义版本号 -->
     <properties>
           <spring.version>4.3.7.RELEASE</spring.version>
     </properties>

     <!-- 父模块统一管理依赖 -->
     <dependencyManagement>
           <dependencies>
                <dependency>
                     <groupId>org.springframework</groupId>
                     <artifactId>spring-core</artifactId>
                     <version>${spring.version}</version>
                </dependency>

                <dependency>
                     <groupId>org.mybatis</groupId>
                     <artifactId>mybatis</artifactId>
                     <version>${mybatis.version}</version>
                </dependency>
           </dependencies>
     </dependencyManagement>

② 子模块中使用依赖

子模块中使用的话, 不需要定义版本号.

     <dependencies>
           <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
           </dependency>
     </dependencies>

(7) 聚合工程的安装.

聚合工程不需要每个模块分别安装, 只要对父工程安装即可.

① 在 打包方式为 pom 的模块中, 添加插件.

    <!-- 多模块运行插件 -->
    <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
            <port>8080</port>
            <path>/</path>
        </configuration>
    </plugin>

② 在父模块上, 右键 -> Run As -> Maven install.

这里写图片描述

③ 执行结果 : 父工程和子模块都Build成功了。

这里写图片描述

(7) 多模块的 WEB 项目运行.

在 打包方式为 pom 的模块上, 右键

这里写图片描述

这里写图片描述

猜你喜欢

转载自blog.csdn.net/zhongxi7860/article/details/82318913