【发布时间】:2020-09-06 12:06:49
【问题描述】:
我可以从 Gradle 自定义任务中执行 SonarQube 吗? 我想将 projectKey & Name 动态设置为波纹管:
sonarqube {
properties {
property "sonar.host.url", "http://example.com:10009"
property "sonar.login", "ffabcdfa0e21dcdf039d4dd5d1d999997d930b270a"
property "sonar.sourceEncoding", "UTF-8"
// set dynamically
property "sonar.projectKey", "$project.ext.sonarqube_projectkey"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
property "sonar.projectName", "$project.ext.sonarqube_projectname"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
property "sonar.projectVersion", android.defaultConfig.versionName
property "sonar.projectBaseDir", "${rootDir}/../"
}
}
task run_sonarqube_A {
doFirst {
project.ext.sonarqube_projectkey = "key_foo_A"
^^^^^^^^^^^
project.ext.sonarqube_projectname= "name_foo_A"
^^^^^^^^^^^
}
doLast {
// how to execute sonarqube?
}
}
task run_sonarqube_B {
doFirst {
project.ext.sonarqube_projectkey = "key_foo_B"
^^^^^^^^^^^
project.ext.sonarqube_projectname= "name_foo_B"
^^^^^^^^^^^
}
doLast {
// how to execute sonarqube?
}
}
我尝试如下:
sonarqube.shouldRunAfter run_sonarqube_A
失败如下:
FAILURE: Build failed with an exception.
* Where:
Build file 'D:\project\99_system\foo\build.gradle' line: 212
* What went wrong:
A problem occurred evaluating project ':foo'.
> Could not find method shouldRunAfter() for arguments [task ':foo:run_sonarqube_A'] on object of type org.sonarqube.gradle.SonarQubeExtension.
有没有办法从自定义任务中执行 SonarQube?
如果我只运行“gradlew run_sonarqube_A”,我想要的是自动执行 sonarqube。
【问题讨论】: