【问题标题】:How to override build.gradle with Jenkins job如何使用 Jenkins 作业覆盖 build.gradle
【发布时间】:2016-10-03 22:21:53
【问题描述】:

我需要用 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
}

【问题讨论】:

    标签: gradle jenkins


    【解决方案1】:

    换一种说法,好像你想配置 Checkstyle 任务基于一些条件

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

    用法:./gradlew -PCI checkstyle

    【讨论】:

      【解决方案2】:

      您正在传递带有-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')
      

      Official user guide中了解属性以及如何使用它们

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-04
        • 1970-01-01
        相关资源
        最近更新 更多