【发布时间】:2018-06-27 08:12:09
【问题描述】:
多分支 jenkins 管道调用 gradle build。
需要将 BRANCH_NAME 传递给 build.gradle 中的 sonarqube 任务:
sonarqube {
properties {
property "sonar.host.url", "https://sonar"
property "sonar.projectKey", "com.foo.bar:Foobar"
property "sonar.projectName", "com.foo.bar-Foobar"
property "sonar.binaries", "build"
property "sonar.branch.name", "${branchname}" <---------------
property "sonar.branch.target", "master"
}
}
我试过了:
stage('Sonarscan') {
withSonarQubeEnv('SONAR') {
bat "gradlew -Pbranchname=${BRANCH_NAME} sonarqube --info"
}
}
输出:
* What went wrong:
A problem occurred evaluating root project 'fooBar'.
> Cannot get property 'branchname' on extra properties extension as it does not exist
和
stage('Sonarscan') {
withSonarQubeEnv('SONAR') {
bat "gradlew -Dbranchname=${BRANCH_NAME} sonarqube --info"
}
}
输出:
* What went wrong:
A problem occurred evaluating root project 'fooBar'.
> Could not get unknown property 'branchname' for root project 'sfrToolbarContract' of type org.gradle.api.Project.
还有:
stage('Sonarscan') {
withSonarQubeEnv('SONAR') {
def branchname = "${BRANCH_NAME}"
bat "gradlew sonarqube --info"
}
}
但管道作业只是挂起。
如何将 Jenkinsfile 中的属性传递给 gradle build ?
【问题讨论】:
标签: jenkins gradle groovy sonarqube jenkins-pipeline