我正在尝试将SonarQube插件用于Jenkins。我正在使用official guide:
$SONAR_MAVEN_GOAL -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_AUTH_TOKEN
所有这些都会导致异常:
Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.6.0.1398:sonar (default-cli) on project com.qualitype.foundation.build:
Not authorized. Please check the properties sonar.login and sonar.password.
我试图解决此问题的方法:
sonar.login
和sonar.password
添加到 pom.xml sonar.login
和sonar.password
sonar.login
和sonar.password
sonar.login
(来自配置文件->安全->令牌)$SONAR_AUTH_TOKEN
,而是一个固定值)这些工作均不具有相同的例外。起作用的只是调用sonar:sonar
并禁用“准备SonarQube扫描仪环境”,因为我们的 pom.xml 是这样设置的。再次启用“准备SonarQube扫描仪环境”后,构建将失败。
如果我使用官方插件而不是仅致电sonar:sonar
,我希望能在Jenkins职位上显示Sonar信息。
如何使Sonar插件与Jenkins配合使用?
答案 0 :(得分:0)
取决于/ configureTools /下的 Maven配置,您必须将以下内容添加到/ configfiles /下的maven settings.xml中:
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.host.url>URL to your Sonar-Server</sonar.host.url>
<sonar.login>the token you generated on Sonaqrqube</sonar.login>
</properties>
</profile>
Maven通常不会考虑您在“ Sonar插件设置”中指定的Sonartoken(只要您未通过-D参数script.sh "mvn sonar:sonar -Dsonar.branch=${script.env.getProperty('BRANCH_NAME')} -Dstyle.color=always -Dsonar.login=$token
指定它)。
总体而言,Sonarqube使用令牌作为用户/密码替换的方式与我们的自动实例设置不符。因此,我们最终使用REST调用在自定义的Jenkins管道库中为每个构建生成了短暂的令牌。