博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Maven学习小结(四 聚合与继承)
阅读量:5314 次
发布时间:2019-06-14

本文共 4537 字,大约阅读时间需要 15 分钟。

1.聚合

一次构建多个项目模块。

2.继承

为了消除重复,把很多相同的配置提取出来,例如groupid和version;

2.1 Maven中可以继承的POM元素

groupId :项目组 ID ,项目坐标的核心元素;  version :项目版本,项目坐标的核心元素;  description :项目的描述信息;  organization :项目的组织信息;  inceptionYear :项目的创始年份;  url :项目的 url 地址  develoers :项目的开发者信息;  contributors :项目的贡献者信息;  distributionManagerment :项目的部署信息;  issueManagement :缺陷跟踪系统信息;  ciManagement :项目的持续继承信息;  scm :项目的版本控制信息;  mailingListserv :项目的邮件列表信息;  properties :自定义的 Maven 属性;  dependencies :项目的依赖配置;  dependencyManagement :醒目的依赖管理配置;  repositories :项目的仓库配置;  build :包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等;  reporting :包括项目的报告输出目录配置、报告插件配置等。

3.示例

3.1创建4个Maven项目,放在相同的目录下,其中hello_parent为父项目(聚合模块),hello_1/hello_2/hello_3为子项目(被聚合的模块);hello_parent的POM既是聚合POM,又是父POM这么做主要是为了方便。

3.1.1 hello_parent项目POM

4.0.0
cn.test.maven
parent
0.0.1-SNAPSHOT
pom
Parent
http://maven.apache.org
../hello_ch1
../hello_ch2
../hello_ch3
UTF-8
4.9
0.0.1-SNAPSHOT
junit
junit
${junit.version}
test
cn.test.maven
hello_ch1
${maven.version}
compile
cn.test.maven
hello_ch2
${maven.version}
/*继承的优点:在父pom中定义共同的依赖关系,统一管理项目,确保应用的各个子模块的依赖和版本一致。同时可以避免在每个子模块中都声明一个版本号,这样在升级或者切换到另一个版本时,只需要在父pom里更新,不需要到每一个子模块里修改;如果某个子模块需要另外一个版本时,只需要在其dependencies中声明另一个版本即可。子项目就会使用子pom中声明的版本号,覆盖父pom声明的版本。*/
/*dependencies 所有声明在dependencies里的依赖都会自动引入,并默认被所有的子pom继承。dependencyManagement只是声明依赖,并不实际引入,因此子pom需要显示的声明需要用的依赖。如果不在子pom中声明依赖,是不会从父pom中继承下来的;只有在子pom中写了该依赖项,并且没有指定具体版本,才会从父pom中继承该项,并且version和scope都读取自父pom;另外如果子pom中指定了版本号,那么会使用子pom中指定的版本。*/

3.1.2 子项目1 POM(hello_ch1)

4.0.0
hello_ch1
cn.test.maven
parent
0.0.1-SNAPSHOT
../hello_parent/pom.xml
junit
junit
/*parent标签artifactId父pom的artifact标识符groupId父pom的group标识符version父pom的版本relativePath父项目的pom.xml文件的相对路径。默认值为../pom.xml。maven首先从当前构建项目开始查找父项目的pom文件,然后从本地仓库,最有从远程仓库。RelativePath允许你选择一个不同的位置。*/

3.1.3 子项目2 POM(hello_ch2)

4.0.0
hello_ch2
hello_ch2
cn.test.maven
parent
0.0.1-SNAPSHOT
../hello_parent/pom.xml
junit
4.8
junit
cn.test.maven
hello_ch1

3.1.4 子项目3 POM(hello_ch3)

4.0.0
Hello
cn.test.maven
parent
0.0.1-SNAPSHOT
../hello_parent/pom.xml
junit
junit
cn.test.maven
hello_ch2

4.在parent项目中构建:

转载于:https://www.cnblogs.com/lycsky/p/5551043.html

你可能感兴趣的文章
最大子段和
查看>>
vuejs动态组件给子组件传递数据
查看>>
javascript constrator and prototype
查看>>
杭电2065(递推)红色病毒
查看>>
No Language-Support in system setting ,Ubuntu
查看>>
spring 实现测试解耦
查看>>
系统资源不足,无法完成API(收集)
查看>>
美化滚动条样式
查看>>
WM_CLOSE,WM_DESTROY,WM_QUIT区别
查看>>
Python学习笔记第二十一周
查看>>
js 获取视频的第一帧
查看>>
各种正则验证
查看>>
C#中IS和AS操作符的区别(转)
查看>>
win7远程桌面连接
查看>>
深入浅出JMS(一)——JMS简单介绍
查看>>
android widget 开发实例 : 桌面便签程序的实现具体解释和源代码 (上)
查看>>
[PTA] 数据结构与算法题目集 6-4 链式表的按序号查找 & 6-5 链式表操作集 & 6-6 带头结点的链式表操作集...
查看>>
观察者模式(Observer)
查看>>
DPDK编译步骤
查看>>
Python基础理论 - 面向对象
查看>>