1

在从开源项目分叉模块时与 Maven 战斗。源代码是一个多模块 Maven 项目,具有以下结构:

.
 |-- module-a
 |   `-- pom.xml
 |-- module-b
 |   `-- pom.xml
 |-- module-c
 |   `-- pom.xml
 |-- module-...
 |   `-- pom.xml
 `-- parent
     `-- pom.xml

分叉整个项目不是一种选择。我只需要 fork 几个模块,例如module-amodule-b.

版本控制应该跟踪原始数字,在末尾附加一个后缀:-${org}-${inc},其中:

  • ${org}是组织的名称(固定)
  • ${inc}是一个序数,每次我们发布从同一个社区版本分叉的项目时,我们都会增加它。

我通过保留父引用来保留返回原始项目的链接。所以我的分叉继承自社区的父 POM。

出现问题是因为社区父 POM 声明内部依赖项将由所有子工件使用<version>${project.version}</version>.

因此,将我的 fork 版本设置为:3.10.1-org-01不起作用,因为构建需要其他相关的工件,我不需要 fork 与 version 一起出现3.10.1-org-01

将 设置finalName为类似的东西${project.artifactId}-${project.version}-${org}-${inc}也无济于事,因为即使工件以正确的名称出现在构建输出目录 (target/) 中,它仍然会以旧名称安装到 Maven 存储库中,从而覆盖社区版本和创造一个不真实的现实。

在这种情况下,我也没有找到让分类器成为我朋友的方法。

除了分叉社区父 POM 和定制分叉模块的依赖版本号之外,还有什么想法吗?

谢谢!

4

0 回答 0