前端之家收集整理的这篇文章主要介绍了
《maven实战》读书笔记(四)——聚合与继承,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
1、聚合的写法
<project>
<groupId />
<artifactId />
<version />
<packaging>pom</packaging>
<modules>
<module>abc</module>
<module>def</module>
</modules>
</project>
以上的配置和一般的POM有2个区别,一个是packaging要声明为pom,第二个是多了<modules>的配置 这里的abc和def都是子目录的目录名。也就是说,abc和def都是这个聚合项目的子目录,如果要平级的话,这里需要改成../abc和../def 2、继承 以下列表中的pom元素是可以被继承的: <groupId> <version> <description> <distributionManagement> <properties> <dependencies> <dependencyManagement> <repositories> <build> 不过一般不会直接继承<dependencies>,因为未来
增加的子项目,是否一定就需要依赖parent里声明的依赖,是很难说的。所以一般在parent pom里,只会配置<dependencyManagement>,以限定依赖的版本号。实际的依赖还是在具体子项目里声明的,但是对版本号进行了控制 3、聚合与继承的关系 聚合主要是为了多个maven工程协同构建项目,而继承主要是为了消除重复配置 对于聚合模块来说,它知道有哪些被聚合的模块,被聚合的模块并不知道聚合模块的存在 对于继承关系的parent pom来说,它并不知道哪些子模块继承自它,而子模块则必须知道父模块是什么 在实际项目中,往往会把聚合POM和父POM合一,这样也是有道理的,主要是为了方便起见。至于目录结构,可以是子目录,也可以是平行关系 4、裁剪Reactor 当构建一组存在聚合和继承关系的maven项目时,就存在一个Reactor的关系,也就是构建的顺序 默认情况下,构建顺序会形成一个有向非循环图 但是可以通过一些参数,来对构建顺序进行裁剪 mvn -pl aa,bb 仅构建aa和bb模块 mvn -pl aa -am 构建aa,及aa的依赖模块 mvn -pl aa -amd 构建aa,及依赖aa的模块 mvn -pl aa -amd bb 首先根据aa,及依赖aa的模块,计算出构建顺序之后,从bb模块开始构建(bb模块之前的模块不会被构建)