您的位置:首页 > 其它

maven构建项目中聚合与继承

2017-07-12 15:43 267 查看
聚合是为了方面快速构建项目,而继承则是为了消除重复配置。

是否遇到过这样的情况,当你从公司git地址上clone项目时,本来是一个项目,clone后会出现好几个maven项目呢?

这就是maven的聚合功能。

当使用聚合时,需要几个注意地方:

①:主聚合pom文件中,<packaging>节点必须为pom。

②:在project节点下加入待聚合的节点信息如:

<modules>

<module>xxx</module>

<module>yyy</module>

</modules>

③:如果待聚合项目的模块不是父子类结构,而是平行模块(或其他)的时候,则需要相应的修改模块地址:

<!--假设是平行结构--!>

<modules>

<module>../\xxx</module>

<module>../yyy</module>

</modules>

当使用继承时,父模块无需修改,而仅仅只需要子木块去继承即可,

在project节点下加入:

<parent>

<groupId>com.my.test</groupId>

<artifactId>myMaven</artifactId>

<version>1.0.0-SNAPSHOT</version>

<relativePath>../parent/pom.xml</relativePath>

</parent>

并且,可以使用dependencyManagement和pluginManagement两个标签进行继承时候的,插件和依赖的管理。

意思是,当子模块继承父模块时,如果使用*management时,只有当子类中配置了相应的dependency或者plugin,并且其

groupId和artifactId与父模块中一致时,父模块中*management才会影响实际的插件行为。

在一个,当使用继承或者聚合一起使用时,反应堆(Reactor)的构造顺序是怎样的呢?

①:根据父模块的modules中顺序来;

②:如果子模块在父模块之前,则应该先构造父模块;

③:模块中的依赖关系会将反应堆构成一个有向非循环图,不允许出现循环,如果出现

模块A依赖于B,而B又依赖于A的情况,maven就会报错;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: