java - Jenkins:使用子项目构建项目的最佳方式

标签 java jenkins

我们在同一个 SVN 存储库中有一个包含两个子项目的项目。 例如:

svn://ip/svn/ trunk/subproject1
svn://ip/svn/ trunk/subproject2

项目的构建应该包括两个子项目的构建结果。 为了使我们的构建更快,我只想在分别更改 SVN 时运行子项目 1 的构建(在 svn://ip/svn/trunk/subproject1 中)。同样对于子项目2

最好的方法是什么? 我可以通过一份工作完成吗? 在这种情况下,我应该如何定义构建触发器?

或者我需要定义 3 个作业:每个子项目一个或每个项目一个?

任何帮助将不胜感激! 最好的祝福, 迈克尔

最佳答案

使用 Jenkins 可以通过多种方式实现这一目标。

  1. multi-SCM plugin顾名思义,将允许在单个作业中包含多个源存储库。

  2. 您可以定义 n 个相互触发的作业(即相互依赖)。您可以在 Build Triggers > Build after other projects are built 下找到它。

  3. 还有一个主作业控制下游作业的选项。您将在 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/

相关文章:

java - Android上单个物理文件中的多个类

linux - 作为 Jenkins 构建服务器管理员,我必须处理哪些事情?

docker - 如何解决 gradle 在 docker 环境中被破坏的问题?

java - 如何为单个按钮设置多个 ActionListener

java - JSF ajax 和自定义转换器

Jenkins 配置作为代码插件与 Pipeline

git - 如何为 jenkins git 插件指定 ssh key

linux - Jenkins 中的 Maven 构建失败 : mvn: command not found

java - 带有 python 后端的 Android 应用程序

java - org.eclipse.swt.widgets 与 javax.swing.table : Why redefine it?