【Maven实战】依赖的聚合和版本管理
1、在之前的文章中,我们已经建立了四个Maven项目,但是此时如果我们要对这四个项目进行编译打包时,必须一个一个的进行执行命令,而聚合就是指只要我们在其中一个项目中编写一些代码,则在进行此项目的编译和打包的时候也会自动的将其他的项目进行编译和打包!一般情况下一个项目中可能包含很多的子项目,所以我们只需要在这个项目的根目录下建立一个pom.xml即可,不需要在每一个子项目中建立一个pom.xml文件,如下:
这个是现在struts2的源码得到的文件,在struts2这个项目中包含了apps、core等模块,但只建立了一个pom.xml文件。
因为在MyEclipse中一个单独的文件只能存放在一个项目中,所以为了在MyEclipse中做演示,这里专门建立一个user-aggregation的项目,用来存放pom.xml文件:
以上是user-aggregation和另外四个项目之间的关系,user-aggregation项目中pom.xml文件的内容如下:
1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 3 <modelVersion>4.0.0</modelVersion> 4 5 <groupId>com.lq.wangzhen.user</groupId> 6 <artifactId>user-aggregation</artifactId> 7 <version>0.0.1-SNAPSHOT</version> 8 <packaging>pom</packaging> <!-- 此处不是以jar包的形式进行打包,而是以pom的形式进行 --> 9 10 <modules> 11 <module>../user-core</module> <!-- 这里因为此pom.xml文件在user-aggregation项目中,需要退出一个文件夹才能找到user-core --> 12 <module>../user-dao</module> 13 <module>../user-log</module> 14 <module>../user-services</module> 15 </modules> 16 </project>
这样我们使用mvn clean install命令执行一下user-aggregation中的pom.xml文件, 就可以发现会自动的进行另外四个项目的编译和安装:
2、下面我们介绍一下对于一个项目的版本管理,比如一个Hadoop压缩包的命名:
这里可以发现他命名是hadoop-2.0.3-alpha.tar.gz,其中包含了以下的含义:
- 第一个数字表示总版本号(如:2):只要有大的变动的时候就会改变,表示框架有了变动
- 第二个数字表示分支版本号(如:0):一般表示增加了一些功能
- 第三个数字表示小版本号(如:3):在分支版本上面进行了bug的修复
- 第四个表示里程碑版本(如:alpha):发展历程为:SNAPSHOT(快照版本,不稳定)--->alpha(内部测试版本)-->beta版本(外部的公测版本)-->release(稳定版本)-->GA(非常稳定版本)