我尝试让Jenkins运行Sonar作为构建后的步骤。
Jenkins运行SonarRunner [1],但这会失败,原因如下:
ERROR: Error during Sonar runner execution
ERROR: Unable to execute Sonar
ERROR: Caused by: You must define the following mandatory properties for 'Unknown': sonar.projectKey, sonar.projectName, sonar.projectVersion, sonar.sources
如果我运行mvn sonar:sonar
[2],它就可以正常工作。听起来好像SonarRunner忽略了pom.xml。我如何让SonarRunner从Maven获取这些属性?
[1]/Users/builds/.jenkins/tools/hudson.plugins.sonar.SonarRunnerInstallation/Default_Sonar_Runner/bin/sonar-runner -Dsonar.jdbc.url=jdbc:h2:tcp://myServer:1009/sonar -Dsonar.host.url=http://myServer/sonar/ -Dsonar.projectBaseDir=/Users/builds/.jenkins/workspace/myProject
[2]mvn sonar:sonar -Dsonar.jdbc.url=jdbc:h2:tcp://myServer:1009/sonar -Dsonar.host.url=http://myServer/sonar/ -Dsonar.projectBaseDir=/Users/builds/.jenkins/workspace/myProject
4条答案
按热度按时间b91juud31#
更新:根据https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-jenkins/,所需功能现在可用。
多好的方式来浪费一个晚上...
根据this的说法,Sonar Runner并不适用于Maven项目。事实证明,你应该在“Post-Build Actions”(而不是“Post-Build Steps”)下查找,你会找到“Sonar”。更多信息请参见here。
x0fgdtte2#
发布 步骤 - 〉 执行 SonarQube 扫描 仪 - 〉 分析 属性
中 的 每 一 个
gjmwrych3#
有一些Maven GAV信息数据Map到Jenkins变量中,请查看以下线程:从Jenkins中的pom文件自动派生必需的SonarQube属性
mitkmikd4#
在
sonar-scanner.properties
中尝试以下配置: