6

我正在按照sonarcloud.io 上的入门说明从我的计算机上执行适用于 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.loginmvn命令中,那么它就可以工作:

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'

我也使用了示例脚本

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

4

3 回答 3

2

似乎该标签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'
于 2018-04-25T00:26:08.810 回答
2

我同意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>
于 2019-08-05T13:14:56.607 回答
1

问题在于 travis 加密。

正确的加密语法:

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

没有变量名,没有引号。

如果你travis encrypt在你的 repo 目录中运行,你可以使用

travis encrypt 309473973909Z09R830

请更换你的令牌309473973909Z09R830

上面的技巧对我有用。考虑让公众更容易看到它。

学分:@ron190

于 2019-01-15T07:33:36.760 回答