Maven 没有在多模型项目中构建同级依赖项
Maven is not building sibling dependencies in multi-model project
我有一个多模块项目,在根 POM 中我有:
<modules>
<module>shared-lib1</module>
<module>shared-lib2</module>
<module>main-app</module>
</modules>
在 main-app
模块中,我列出了我的库:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>lib1</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>lib2</artifactId>
<version>${project.version}</version>
</dependency>
一般的构建命令是mvn deploy -pl <changedList> -am -amd
当我的 Jenkins 自动化检测到推送到分支的变化时,它会分析哪些文件从哪个模块发生了变化。因此,例如只有 shared-lib1
被更改。
在那种情况下,命令将是 mvn deploy -pl shared-lib1 -am -amd
,由于 -amd
选项,这将把 main-app
放入要构建的反应堆项目列表中。
但是,它不会拾取 shared-lib2
并且 main-app
将无法构建。
是否有任何选项可以正确构建树,所以基本上为 -amd
发现的所有模块启用 -am
选项?
UPD:${project.version}
每次都会更新,因为包含提交的 SHA
因为没有人回答这个问题:这是 Maven 的预期行为以及它如何构建模块图。我尝试创建自己的图形构建器,它应该已经转换为 Maven 构建器,但我很久以前就从这个 activity 移走了:
https://gist.github.com/vladfau/eb34e4f3892d0207e399a0f1f84f83ff
这是为 Jenkins Pipeline 编写的,因此有一些 CPS 增强。最值得注意的方法是 generateFullDependencyList
我有一个多模块项目,在根 POM 中我有:
<modules>
<module>shared-lib1</module>
<module>shared-lib2</module>
<module>main-app</module>
</modules>
在 main-app
模块中,我列出了我的库:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>lib1</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>lib2</artifactId>
<version>${project.version}</version>
</dependency>
一般的构建命令是mvn deploy -pl <changedList> -am -amd
当我的 Jenkins 自动化检测到推送到分支的变化时,它会分析哪些文件从哪个模块发生了变化。因此,例如只有 shared-lib1
被更改。
在那种情况下,命令将是 mvn deploy -pl shared-lib1 -am -amd
,由于 -amd
选项,这将把 main-app
放入要构建的反应堆项目列表中。
但是,它不会拾取 shared-lib2
并且 main-app
将无法构建。
是否有任何选项可以正确构建树,所以基本上为 -amd
发现的所有模块启用 -am
选项?
UPD:${project.version}
每次都会更新,因为包含提交的 SHA
因为没有人回答这个问题:这是 Maven 的预期行为以及它如何构建模块图。我尝试创建自己的图形构建器,它应该已经转换为 Maven 构建器,但我很久以前就从这个 activity 移走了:
https://gist.github.com/vladfau/eb34e4f3892d0207e399a0f1f84f83ff
这是为 Jenkins Pipeline 编写的,因此有一些 CPS 增强。最值得注意的方法是 generateFullDependencyList