我最近开始在一个开源项目中使用Travis CI和sonarqube,并且遇到了sonarqube-scanner的问题。
我的Travis CI页面可以在这里看到:https://travis-ci.org/uglyoldbob/decompiler
我的声纳页面可以在这里看到:https://sonarqube.com/overview?id=uglyoldbob_decompiler
我在Travis CI上运行了sonarqube-scanner它突然停止了以下错误:
"ERROR: You're not authorized to execute any SonarQube analysis. Please contact your SonarQube administrator."
我正在使用在sonarqube上生成的令牌并将其添加到Travis CI的环境变量中。当我注意到问题并使用Travis更新环境变量时,我生成了一个新令牌,但它没有改变任何东西。
我该怎么做才能解决这个问题?
一般情况:您需要从分析参数中具有分析权限的帐户传递用户令牌。使用sonar.login
属性来执行此操作。
具体来说:我从你的travis日志中看到你传递的是sonar.login属性中的用户令牌。但是你把它传递给sonar.host.url=http://nemo.sonarqube.org
。您需要将其更改为https://sonarqube.com
与mvn我必须传递给sonarcloud.io参数-Dsonar.branch=master
所有命令都是这样的:
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package sonar:sonar -Dsonar.host.url=https://sonarcloud.io -Dsonar.organization={ORG_KEY} -Dsonar.login={GENERATED_KEY_ON_SONARCLOUD_SECURITY} -Dsonar.branch={BRANCH_NAME}
这修复了以下错误:
您只被授权执行本地(预览)SonarQube分析,而无需将结果推送到SonarQube服务器。请联系您的SonarQube管理员。
记得在sonarcloud管理控制台上添加分析权限。
“很可能是从你的Gradle配置中推断出的SonarCloud项目密钥已被其他人使用”(Fabrice Bellingard,https://community.sonarsource.com/t/unauthorized-exception-on-first-sonarqube-analysis/333/2)
选择修复:
-Dsonar.projectKey = $ my_own_project_key
或者通过build.gradle
:
sonarqube {
properties {
property 'sonar.projectKey', '$my_own_project_key'
}
}