项目管理工具——Maven学习笔记(十二、Maven聚合和继承特性)

什么是Maven聚合特性?
能够把项目的各个模块聚合在一起构建,这种方式就是聚合。不用我们手动依次install各个模块了,提高工作效率。

现在呢,就把我们之前的【maventest-a】、【maventest-b】、【maventest-c】进行聚合。打开Eclipse,创建新项目【maventest-aggregation】。
打开并编辑【maventest-aggregation】的pom.xml:

  1. 标签值改为pom,作为聚合项目的容器,则必须pom;
  2. 增加标签,将子项【maventest-a】、【maventest-b】、【maventest-c】依次添加。
    如图:

Paste_Image.png

保存,并【Run As】→【Maven Build】,输入命令:clean install

Paste_Image.png

 

运行之后,它会依次将a、b、c打包安装到本地仓库。

Paste_Image.png

这就是聚合了,那么……

什么是Maven的继承特性呢?
能够帮助抽取各模块相同的依赖和插件等配置,在简化 pom 配置的同时,还能促进各个模块配置的一致性。

例如,我们的【maventest-a】、【maventest-b】、【maventest-c】项目都在pom引入了junit依赖。这就导致我们项目很冗余。那怎么办呢?这时就需要用到继承特性,创建项目父模块【maventest-parent】。

在【maventest-parent】的pom.xml中添加标签。这个标签在pom.xml常用元素中讲到过。

Paste_Image.png

添加好后,就是这样的:

Paste_Image.png

为了防止以后pom.xml变庞大,版本号不易找到和修改,可以将junit的version的值,单独提出来到标签里,并使用EL表达式引用。

Paste_Image.png

然后将值改为pom,作为父模块这个值必须为pom。又因为是父模块,一般是不在main和test里写代码的,这两个目录,都可以删除。
最后【maventest-parent】的pom.xml:

Paste_Image.png

左侧目录结构:

 

Paste_Image.png

父模块完成,打开子模块。以【maventest-a】为例:

  1. 在它的pom中增加标签并把【maventest-parent】的坐标添加进去。
  2. 将junit依赖的版本号和依赖范围删掉,保留。这是因为,父模块虽然引入了junit,但是还需要子模块声明才可以使用。
    如图:

Paste_Image.png

Paste_Image.png



作者:鲁克巴克诗
链接:https://www.jianshu.com/p/d0c6e731ca46
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

你可能感兴趣的:(项目管理工具——Maven学习笔记(十二、Maven聚合和继承特性))