您的位置:首页 > 其它

maven聚合

2015-10-15 14:50 423 查看
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


使用聚合后,一个命令就可以一步到位!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  maven 聚合