没有授权在Travis CI上使用sonarqube扫描仪执行任何声纳分析

时间:2016-07-14 13:09:41

标签: sonarqube sonarqube-scan

我最近开始在一个开源项目中使用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更新环境变量时,我生成了一个新令牌,但它没有改变任何内容。

我该怎么做才能解决这个问题?

5 个答案:

答案 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)

就我而言,这是一个许可问题。 管理 >> 安全 >> 全局权限 enter image description here

答案 4 :(得分:0)

我们遇到了由代理配置引起的类似问题。通过在settings.xml中的nonProxyHost配置中添加声纳服务器ip解决