maven聚合
2015-10-15 14:50
423 查看
maven是一个工具,主要是用来对Java项目进行构建(编译、测试、打包等)和依赖管理,它能够用简单的命令来构建项目,还能通过配置的方式自动下载项目依赖的jar包。
我在上一篇博客中介绍了maven的使用入门,本篇来讨论maven中聚合的概念。
那么问题来了,每次我想运行web,打开控制台窗口后,我都需要先定位到dao项目的根目录,输入
第一步,将testproject-aggregator项目的坐标中的packaging设置为pom,第二步,用一个modules标签,将其余三个项目包进来。
使用聚合后,一个命令就可以一步到位!
我在上一篇博客中介绍了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学习
- maven插件maven-war-plugin的使用
- jenkins------部署项目到jboss eap下
- maven使用经验集
- 解析SQLServer任意列之间的聚合
- MongoDB入门教程之聚合和游标操作介绍
- MongoDB聚合功能浅析
- jQuery聚合函数实例
- 使用maven+eclipse搭建struts2开发环境
- maven中下载jar包源码和javadoc的命令介绍
- MongoDB教程之聚合(count、distinct和group)
- Maven学习笔记
- Maven for Eclipse
- maven 使用 问题记录
- 《Maven权威指南》学习笔记四_创建一个简单的Maven项目
- 《Maven权威指南》学习笔记十七_一个多模块项目 3ff0
- 《Maven权威指南》学习笔记十八_多模块企业级项目 3ff0
- 《Maven权威指南》学习笔记二十_关于POM
- 近日maven学习概况
- Eclipse Maven Tomcat的利用配置