jenkins SonarRunner找不到声纳,项目密钥,声纳,项目名称,声纳,项目版本,声纳,源

rggaifut  于 2022-11-21  发布在  Jenkins
关注(0)|答案(4)|浏览(145)

我尝试让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

b91juud3

b91juud31#

更新:根据https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-jenkins/,所需功能现在可用。

多好的方式来浪费一个晚上...
根据this的说法,Sonar Runner并不适用于Maven项目。事实证明,你应该在“Post-Build Actions”(而不是“Post-Build Steps”)下查找,你会找到“Sonar”。更多信息请参见here

x0fgdtte

x0fgdtte2#

    • 方法 1 : * * 如果 您 在 Jenkins 中 安装 了 扫描 仪 , 则 只需 在 作业 的 此 位置 添加 以下 内容

发布 步骤 - 〉 执行 SonarQube 扫描 仪 - 〉 分析 属性

sonar.projectKey=myProject1
sonar.sources=.

中 的 每 一 个

    • 方法 2 : * * 另 一 种 替代 方法 是 使用 已 弃 用 的 方法 , 该 方法 仍然 可以 正常 工作 构建 后 操作 - 〉 使用 Maven 进行 SonarQube 分析
    • 方法 3 : * * 构建 - 〉 目标 和 选项 - 〉 " 输入 以下 脚本 " - Dmaven . test . skip = true 安装 声纳 : 声纳 - Dsonar . forceAnalysis = true - Dsonar . host . url = http://localhost:9000/ - Dsonar . branch = my-branch - 1
gjmwrych

gjmwrych3#

有一些Maven GAV信息数据Map到Jenkins变量中,请查看以下线程:从Jenkins中的pom文件自动派生必需的SonarQube属性

mitkmikd

mitkmikd4#

sonar-scanner.properties中尝试以下配置:

sonar.host.url=http://localhost:9000
sonar.projectKey=<your project package>
sonar.projectName=<your project name with absolute path>
sonar.projectVersion=1.0
sonar.sources=src/main/java/
sonar.language=java
sonar.java.binaries=target/classes

相关问题