Gil*_*ian 4 java maven maven-module
在Maven多模型中,我们有一个父pom,其中模块在<modules>tag中定义,在每个模块中,我们定义父pom是谁.
为什么这个双向定义?
为什么不在模块的父部分中定义它们之间的关系?
如果模块总是绑定到父模块,我应该如何重用模块?
dav*_*xxx 10
为什么这2路定义?
这不是强制性的.这是一个设计选择.
为什么不在父母中定义?
如果仅在modules父pom 的标记中定义它们 ,则只使用Maven的reactor/aggregation功能.
1)聚合(<modules>超级聚合器项目中的声明)主要提供以下功能:
收集要构建的所有可用模块
将项目排序为正确的构建顺序
按顺序构建选定的项目
通过声明要在父pom中聚合的模块来启用聚合模块:
<modules>
<module>my-child</module>
<module>my-other-child</module>
</modules>
Run Code Online (Sandbox Code Playgroud)
但聚合不提供继承.
2)项目继承(<parent>子模块中的声明)提供从父声明到子模块的多个东西的继承:
从实际文档中,父POM的大多数元素都由其子元素继承.
:
的groupId
版
描述
网址
inceptionYear
组织
许可证
开发商
贡献者
邮件列表
SCM
issueManagement
ciManagement
性能
dependencyManagement
依赖
资料库
pluginRepositories
建立
具有匹配ID的插件执行
插件配置
报告
型材
通过在子poms中声明父工件来启用继承:
<parent>
<groupId>my-group</groupId>
<artifactId>my-parent</artifactId>
<version>1.0.0</version>
</parent>
<!-- You can note that groupId and version are not filled for the current project.
These are optional as inherited from the parent -->
<artifactId>my-artifact</artifactId>
Run Code Online (Sandbox Code Playgroud)
实际上,您可以使用项目继承,项目组合,不使用它们或两者.
根据项目与其要求之间的关系,这应该是一个设计选择.
您可以参考有关这两个功能的Maven文档中的这个有趣点:
项目继承与项目聚合
如果你有几个Maven项目,并且它们都有类似的配置,你可以通过拉出那些类似的配置并制作一个父项目来重构你的项目.因此,您所要做的就是让您的Maven项目继承该父项目,然后将这些配置应用于所有这些项目.
如果您有一组一起构建或处理的项目,则可以创建父项目并让该父项目将这些项目声明为其模块.通过这样做,你只需要建立父母,其余的将遵循.
但是,当然,您可以同时拥有Project Inheritance和Project Aggregation.这意味着,您可以让您的模块指定父项目,同时让该父项目将这些Maven项目指定为其模块.
| 归档时间: |
|
| 查看次数: |
843 次 |
| 最近记录: |