使用Travis CI与Sonarcloud时出错:未经授权。请检查属性sonar.login和sonar.password

时间:2018-04-24 23:57:33

标签: maven sonarqube travis-ci sonarcloud

我在sonarcloud.io上执行Get started指令,从我的计算机上执行Maven的SonarQube扫描程序:

mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package sonar:sonar \
    -Dsonar.host.url=https://sonarcloud.io \
    -Dsonar.organization=ron190-github \
    -Dsonar.login=9...e

手动执行正在运行:

[INFO] ANALYSIS SUCCESSFUL, you can browse https://sonarcloud.io/dashboard/index
/jsql-injection:jsql-injection

但是,当我准备使用Travis CI自动化时,Not authorized. Please check the properties sonar.login and sonar.password.失败了:

[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar (default-cli) on project jsql-injection: Not authorized. Please check the properties sonar.login and sonar.password. -> [Help 1]

如果我将sonar.login添加到mvn命令,那么它正在运作:

language: java
sudo: false
install: true

addons:
  sonarcloud:
    organization: "ron190-github"
    token:
      secure: "v...s="

jdk:
  - oraclejdk8

script:
  # JaCoCo is used to have code coverage, the agent has to be activated
  # Not working
  # - mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package sonar:sonar
  - mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package sonar:sonar -Dsonar.login=9...e

cache:
  directories:
    - '$HOME/.m2/repository'
    - '$HOME/.sonar/cache'

我还使用了example script

你知道为什么忽略secure令牌以及为什么它失败了默认配置?

3 个答案:

答案 0 :(得分:0)

标签secure似乎无效,请改用repo变量:

language: java
sudo: false
install: true

addons:
  sonarcloud:
    organization: "ron190-github"

jdk:
  - oraclejdk8

script:
  # JaCoCo is used to have code coverage, the agent has to be activated
  - mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package sonar:sonar -Dsonar.login=${SONAR_TOKEN}

cache:
  directories:
    - '$HOME/.m2/repository'
    - '$HOME/.sonar/cache'

答案 1 :(得分:0)

问题在于travis加密。

正确的加密语法:

travis encrypt 309473973909Z09R830 -r my-org/my-repo

没有变量名,没有引号。

如果您在回购目录中运行travis encrypt,则可以使用

travis encrypt 309473973909Z09R830

请将您的令牌替换为309473973909Z09R830

以上技巧对我有用。想让公众更容易看到它。

积分:webpack docs

答案 2 :(得分:0)

我同意Santhosh Tpixler的看法,即令牌的Travis加密很可能是您的问题。就我而言,我需要travis-ci.com(与travis-ci.org相反,请参阅https://devops.stackexchange.com/q/1201),因此必须使用--pro标志。

在项目目录中,我使用了以下命令:

travis login --pro
travis encrypt --pro <your-hexadecimal-token>