maven聚合

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/daguanjia11/article/details/49152489

maven是一个工具,主要是用来对Java项目进行构建(编译、测试、打包等)和依赖管理,它能够用简单的命令来构建项目,还能通过配置的方式自动下载项目依赖的jar包。

我在上一篇博客中介绍了maven的使用入门,本篇来讨论maven中聚合的概念。

应用场景

现在的大型项目一般都采用N层架构,即数据处理层、业务逻辑层、应用层、UI层、接口层等等,假设我们现在有一个名叫testproject的项目,包含testproject-dao层,testproject-domain层,testproject-web层这三层,每层都是一个maven项目。web依赖domain,domain依赖dao。

那么问题来了,每次我想运行web,打开控制台窗口后,我都需要先定位到dao项目的根目录,输入mvn clean package并运行,然后再定位到domain项目的根目录,输入同样的命令并运行,然后再定位到web……这是比较痛苦的。业务复杂的项目可能有十几个甚至更多的子模块,如果这么搞简直无法想象。

使用聚合项目

maven对这种问题的解决方案是聚合。我们现在需要新建一个名为testproject-aggregator的maven项目,将前面提到的这三个项目聚合到一起。只需要修改testproject-aggregator项目的pom.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.zdk.test</groupId>
  <artifactId>testproject-aggregator</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>

  <modules>
    <module>../testproject-dao</module>
    <module>../testproject-domain</module>
    <module>../testproject-web</module>
  </modules>
</project>

第一步,将testproject-aggregator项目的坐标中的packaging设置为pom,第二步,用一个modules标签,将其余三个项目包进来。

打包聚合项目

这时,我们打开一个命令行窗口,定位到testproject-aggregator项目的根目录,输入mvn clean package并运行,会同时对这三个项目进行打包,输出大概如下

[INFO] testproject-dao .................................... SUCCESS [  3.540 s]
[INFO] testproject-domain ................................. SUCCESS [  0.477 s]
[INFO] testproject-web .................................... SUCCESS [  0.446 s]
[INFO] testproject-aggregator.............................. SUCCESS [  0.021 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.653 s

使用聚合后,一个命令就可以一步到位!

展开阅读全文

没有更多推荐了,返回首页