如何使用Jenkins作业覆盖build.gradle

时间:2016-06-03 18:39:55

标签: gradle jenkins

我需要使用Jenkins作业覆盖build.gradle文件。

在使用Jenkins gradle插件的构建步骤中尝试过,但没有工作:

-PcheckstyleTask.ignoreFailures=false
-PcheckstyleTask.checkstyleTest.enabled=true

问题:

这些值需要使用Jenkins作业进行更新:ignoreFailurescheckstyleTest.enabled。需要做什么?有人可以帮助我。

档案build.gradle

checkstyle {
    configFile = new File(rootDir, "checkstyle/checkstyle.xml")
    checkstyleMain.source = getTouchedFiles()
    ignoreFailures = true
    checkstyleTest.enabled = false
}

2 个答案:

答案 0 :(得分:0)

您正在传递带有-P标志的项目属性,但这还不是checkstyle的属性。您需要在配置中将此属性用作值,如下所示:

checkstyle {
    configFile = new File(rootDir, "checkstyle/checkstyle.xml")
    checkstyleMain.source = getTouchedFiles()
    ignoreFailures = checkstyleTask.ignoreFailures
    checkstyleTest.enabled = checkstyleTask.checkstyleTest.enabled
}

虽然您可能需要更改变量名称,以使它们与某些构建脚本属性和任务不同。或者您可以通过项目实例

获得此属性
//used to check, whether is property provided
project.hasProperty('checkstyleTask.ignoreFailures')

//used to get specific property value
project.properties.get('checkstyleTask.ignoreFailures')

An Introduction to Managed Extensibility Framework (MEF) - Part I

中了解本地以及如何使用它们

答案 1 :(得分:0)

换句话说,似乎您希望根据某些条件配置 Checkstyle任务:

if (project.hasProperty("CI")) {
    tasks.withType(Checkstyle) {
        ignoreFailures = false
        checkstyleTest.enabled = true
    }
}

用法:./gradlew -PCI checkstyle