如何默认排除某些任务?

时间:2015-03-13 11:41:30

标签: gradle

我在我的gradle(多)项目中添加了一些插件和任务,这需要相当长的时间才能执行,因此只能在构建服务器上默认完成。开发人员应该只能致电

gradlew build

执行构建和测试应用程序的基本步骤。在我们的构建服务器Jenkins上,我想添加一个额外的参数来启用前面提到的额外任务。 E.g。

gradlew build -buildserver

所以我的问题是,如何将某些任务排除为默认值并使用参数等包含它们?

我尝试enabled =这似乎是不可能的,至少对于findBugs插件:

allprojects {
  apply plugin: 'java'
  apply plugin: 'findbugs'

  ...

  findbugs {
    enabled = project.hasProperty('buildserver')
    ...
}

2 个答案:

答案 0 :(得分:3)

由于Opal指出了正确的方向,我做了以下事情: 运行构建以查找任务名称并设置其enabled标志,如下所示:

findbugsMain.enabled = project.hasProperty('buildserver')
findbugsTest.enabled = project.hasProperty('buildserver')
test.jacoco.enabled = project.hasProperty('buildserver')
pmdMain.enabled = project.hasProperty('buildserver')
pmdTest.enabled = project.hasProperty('buildserver')

然后我将标志添加到我的Jenkins作业并按照以下方式运行构建:

gradlew clean build -P buildserver

答案 1 :(得分:1)

您需要做的就是为相关任务添加谓词

findbugs.onlyIf { project.hasProperty('buildserver') }

您可以在gradle文档[跳过任务] [1]部分中阅读更多相关信息。