Jenkins使用gradle子项目构建

时间:2018-01-30 19:50:17

标签: android jenkins gradle continuous-integration

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

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

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

例如

如果我的SubProject发生了更改,则只有SubProject会执行自己的Jenkinsfile

我很长时间都在寻找这个选项......

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

是否可以处理Jenkins pipelineplugin

2 个答案:

答案 0 :(得分:3)

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

但是,触发一个项目最有可能是棘手的事情,因为它们很可能生活在同一个源控制位置。

使用svn:externals或Git子模块也许可以轻松解决这些问题。

答案 1 :(得分:0)

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

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

我不确定JenkinsFile的支持......