gpt4 book ai didi

maven - GitLab CI 如何在maven多模块项目中触发子模块的管道

转载 作者:行者123 更新时间:2023-12-01 19:28:19 28 4
gpt4 key购买 nike

我有一个多模块 Maven 项目:

root
SubmoduleA
src
pom.xml
SubmoduleB
src
pom.xml
pom.xml
.gitlab-ci.yml

当有人 checkin 仅影响子模块 A 的代码时,有什么方法可以仅在子模块 A 上触发 CI 管道吗?例如,有人对 SubmoduleA 进行了更改。一旦他们提交并推送,我想仅在 SubmoduleA 上自动运行 build->test->deploy,因为 SubmoduleB 没有任何更改。

有没有办法为存储库中的特定子模块或子项目指定触发器和作业?

最佳答案

我相信您需要为该子模块创建一个 gitlab 项目,并且该子模块需要自己的 .gitlab-ci.yml。那时它将可以在 gitlab-ci-runner 本身内部构建。

我不是 Maven(或 Java)方面的专家,但我想在较大的项目中,您的子模块可能会成为存储在您自己的内部存储库中的单独的二进制构建库。您在构建中生成和使用 jar,并使用 Maven 本身提供它们。然后,Maven 可以使用其内置的依赖项解析和包获取功能为您下载,并且在大型 Java 项目构建场景中,使用它可能会比使用 git 子模块更好。

我现在在 .Net 世界中使用自定义 nuget feed 执行此操作,结果与您正在做的类似,因为构建发生并且构建服务器的资源不会因源代码包含和重新编译而浪费第二次模块。

关于maven - GitLab CI 如何在maven多模块项目中触发子模块的管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39648287/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com