我最近开始在一个开源项目中使用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更新环境变量时,我生成了一个新令牌,但它没有改变任何内容。
我该怎么做才能解决这个问题?
答案 0 :(得分:5)
使用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管理控制台上添加分析权限。
答案 1 :(得分:0)
一般情况:您需要从分析参数中具有分析权限的帐户传递用户令牌。使用sonar.login
属性来执行此操作。
具体来说:我从您的travis日志中看到您 在sonar.login属性中传递了类似用户令牌的内容。 然而您将其传递给sonar.host.url=http://nemo.sonarqube.org
。您需要将其更改为https://sonarqube.com
答案 2 :(得分:0)
“有可能是从您的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'
}
}
答案 3 :(得分:0)
答案 4 :(得分:0)
我们遇到了由代理配置引起的类似问题。通过在settings.xml中的nonProxyHost配置中添加声纳服务器ip解决