我在我的gradle(多)项目中添加了一些插件和任务,这需要相当长的时间才能执行,因此只能在构建服务器上默认完成。开发人员应该只能致电
gradlew build
执行构建和测试应用程序的基本步骤。在我们的构建服务器Jenkins上,我想添加一个额外的参数来启用前面提到的额外任务。 E.g。
gradlew build -buildserver
所以我的问题是,如何将某些任务排除为默认值并使用参数等包含它们?
我尝试enabled =
这似乎是不可能的,至少对于findBugs插件:
allprojects {
apply plugin: 'java'
apply plugin: 'findbugs'
...
findbugs {
enabled = project.hasProperty('buildserver')
...
}
答案 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]部分中阅读更多相关信息。