【发布时间】:2014-02-24 04:31:38
【问题描述】:
假设我有一些子 pom,它们有 90% 的共同点。我想把他们的共同代码放到一个共同的地方。我不能使用共同的父母,因为这些孩子也需要从他们自己的父母那里延伸出来。是否有其他地方可以放置常见的东西,定义一次,然后让子 pom 共享,而不是在每个子 pom 中多次复制常见的东西?或者如果您有其他意见,请根据您的喜好提出建议。谢谢
例如 项目 A 有 pom
<groupId>project-a</groupId>
<artifactId>parent</artifactId>
<version>1.0</version>
和
<groupId>project-a</groupId>
<artifactId>parent</artifactId>
<version>2.0</version>
由一个完全不同的团队实施的项目 B 有这个父 pom
<groupId>project-b</groupId>
<artifactId>parent</artifactId>
<version>0.1</version>
<modules>
<module>child-extends-from-project-a-version-1.0</module>
<module>child-extends-from-project-a-version-2.0</module>
</modules>
以及从项目 A 扩展而来的一些子项目
<parent>
<groupId>project-a</groupId>
<artifactId>parent</artifactId>
<version>1.0</version>
</parent>
<groupId>project-b.child</groupId>
<artifactId>child-extends-from-project-a-version-1.0</artifactId>
"some common stuff"
<parent>
<groupId>project-a</groupId>
<artifactId>parent</artifactId>
<version>2.0</version>
</parent>
<groupId>project-b.child</groupId>
<artifactId>child-extends-from-project-a-version-2.0</artifactId>
"some common stuff"
我如何将这些“常见的东西”分组到一个地方而不在每个子 pom 中重复?
【问题讨论】:
-
你说的是哪种
common stuff?你能举个例子说明你喜欢搬进父母吗? -
@khmarbaise 常见的东西,如依赖项、插件、配置文件、属性。
-
您的子项目是否相关?它们会在一个反应器中一起构建,还是完全不相关并且只是共享共同的内容?
-
@blackbuild 孩子们一起构建并在一个 jar 中发布以供另一个团队使用,在那里他们将作为 v1 API 和 v2 API 等导入。
标签: maven project project-management pom.xml