加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

《maven实战》读书笔记(四)——聚合与继承

发布时间:2020-12-13 19:41:48 所属栏目:百科 来源:网络整理
导读:1、聚合的写法 project groupId / artifactId / version / packagingpom/packaging modules moduleabc/module moduledef/module /modules/project 以上的配置和一般的POM有2个区别,一个是packaging要声明为pom,第二个是多了modules的配置 这里的abc和def都
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模块之前的模块不会被构建)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读