【问题标题】:Jenkins builds with gradle subprojectsJenkins 使用 gradle 子项目构建
【发布时间】:2018-07-09 19:29:27
【问题描述】:

我是否可以在 gradle 中创建两个模块项目,并为每个模块自己触发构建?

Root project 'Example' 
    Jenkinsfile
\--- Project ':SubProject'
    Jenkinsfile

我希望 jenkins 仅在已更改的模块中触发构建。


例如

如果我的SubProject 改变了,那么只有SubProject 会执行它自己的Jenkinsfile

这个选项我找了很久...

正如您在其他问题中看到的那样,没有任何简单的方法可以实现这一目标。

有没有Jenkins pipelineplugin 可以解决这个问题?

【问题讨论】:

标签: android jenkins gradle continuous-integration


【解决方案1】:
  • 仅从给定子项目调用 gradle 任务相对容易:
    • 构建示例./gradlew :build
    • 构建子项目./gradlew :SubProject:build
    • Gradle 将只运行这些调用定义的任务图。
  • 在 Jenkins 中基于不同的 Jenkinsfile 设置两个不同的作业应该相对容易,并且每个作业都可以具有上面定义的自定义调用。

但是,仅触发一个项目很可能是一件棘手的事情,因为它们很可能位于同一个源代码控制位置。

也许更简单的解决方法是让它们解耦,使用svn:externals 或 Git 子模块。

【讨论】:

    【解决方案2】:

    使用excludedRegions 排除会触发构建的文件夹/文件。

    https://jenkins.io/doc/pipeline/steps/workflow-scm-step/

    我不确定 JenkinsFile 是否支持...

    【讨论】:

      猜你喜欢
      • 2020-10-16
      • 2019-03-26
      • 1970-01-01
      • 2019-12-16
      • 2018-03-18
      • 1970-01-01
      • 2021-02-04
      • 2015-11-30
      • 2013-02-21
      相关资源
      最近更新 更多