将作业参数传递给脚本化管道中的gradle任务

时间:2017-11-30 11:27:16

标签: gradle jenkins-pipeline artifactory

我试图在脚本管道中转换我的自由式作业,我使用gradle进行构建和工件来解决我的依赖并发布工件。

当我配置调用gradle脚本时,我的构建参数化了3个params和freestyle作业我有复选框将所有作业参数作为系统属性传递给我 project.gradle文件我使用带有System.getProperty()命令的参数。

现在实现我的管道我定义了作业参数,我在Jenkins文件中有这些像enviromnent变量但是我可以将这个参数传递给gradle任务吗?

按照管道中使用Artifactory-Gradle插件的官方教程,我使用以下命令运行构建:

buildinfo = rtGradle.run rootDir: "workspace/project/", buildFile: 'project.gradle', tasks: "cleanJunitPlatformTest build"

我可以将params传递给Gradle构建并在我的.gradle文件中使用吗?

感谢' S

1 个答案:

答案 0 :(得分:0)

是的,你可以。如果使用sh'''然后切换到sh"""获得扩展值

Jenkinsfile

  #!/usr/bin/env groovy

  pipeline {
    agent any

    parameters {
        string(name: 'firstParam', defaultValue: 'AAA', description: '')
        string(name: 'secondParam', defaultValue: 'BBB', description: '')
        string(name: 'thirdParam', defaultValue: 'CCC', description: '')
   }

   stages {
        stage ('compile') {
             steps {
                sh """
                    gradle -PfirstParam=${params.firstParam} -PsecondParam=${params.secondParam} -PthirdParam=${params.thirdParam} clean build
                sh """
             }
        }
    }
  }

并在build.gradle中,您可以将其作为

进行访问
def firstParam = project.getProperty("firstParam")

与项目属性-P相比,您还可以将SystemProperty与-D前缀一起使用。在这种情况下,您可以将build.gradle中的值作为

获取
def firstParam = System.getProperty("firstParam")