我们在同一个 SVN 存储库中有一个包含两个子项目的项目。 例如:
svn://ip/svn/ trunk/subproject1
svn://ip/svn/ trunk/subproject2
项目的构建应该包括两个子项目的构建结果。 为了使我们的构建更快,我只想在分别更改 SVN 时运行子项目 1 的构建(在 svn://ip/svn/trunk/subproject1 中)。同样对于子项目2
最好的方法是什么? 我可以通过一份工作完成吗? 在这种情况下,我应该如何定义构建触发器?
或者我需要定义 3 个作业:每个子项目一个或每个项目一个?
任何帮助将不胜感激! 最好的祝福, 迈克尔
最佳答案
使用 Jenkins 可以通过多种方式实现这一目标。
multi-SCM plugin顾名思义,将允许在单个作业中包含多个源存储库。
您可以定义
n
个相互触发的作业(即相互依赖)。您可以在Build Triggers
>Build after other projects are built
下找到它。还有一个主作业控制下游作业的选项。您将在
Post-build Actions
>Build other projects
下找到此选项。
关于构建触发,您可以使用poll SCM
选项。这是not the most efficient method但是您的选择可能受 SVN 而不是 Git 的限制。
我刚刚注意到您还提到了整理所有构建的结果 - 您可以通过单个作业或使用 Post-build Actions< 下的选项
.aggregate downstream test results
来实现此目的
最终,您需要明确构建策略。在我看来,如果对任一子项目进行了更改,您想确保没有任何问题。我不确定多 SCM 插件如何处理轮询多个存储库的概念,因此您可能需要将其考虑在内。
我想我已经给了你一些尝试的选择;让我知道你过得怎么样。
关于java - Jenkins:使用子项目构建项目的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15109495/