3

我的 Github 上有一个实验项目,用于练习 CI 服务集成。我很难使用 Sonarcloud。

我遵循了Tavis CI + Sonarcloud教程和Maven 示例。Mz 第一个混淆从令牌和属性文件开始,而第一个来源建议创建sonar-project.properties文件,而 Maven 示例源没有任何内容。这里的文档非常不清楚。

我忽略了属性文件,并执行了以下步骤

  1. 在sonarcloud.io上生成的令牌上为我的项目e53.....239

  2. travis-encrypt.github.io上的加密令牌,因为它是 Windows 用户最舒适的方式。以下 2 个输入导致g3s.....+Q=

    • NicharNET/Gistintex
    • SONAR_TOKEN="e53...239"- 我尝试在引号之间换行和不换行。
  3. 添加到设置 -> 环境变量键SONAR_TOKEN与生成的 Sonarcloud 令牌的值e53...239

  4. 使用安全令牌完成 travis.yml:

    language: java
    sudo: false
    jdk: oraclejdk8
    
    addons:
        sonarcloud:
        organization: "nicharnet-github"
        token:
            secure: "g3sLTdS597mklh1I9HgXr71NRCiOk2n9I41PL2wklnAidwibfocyEcWvSQxjmbhNTjdrcW0cAfzh73Ago8hwfdloraryDY9Ng9L1runxayShtPOqZMPI6nz8zUwLaDfqJVwXWv6A3xICOMFl0UhvF351GPErHhrUO7YIa8el3kESeotYy7kkTzeQ7BA239y7EVFw8H4OCW2gjP2G/InxKnlXfNjgQA3GsnZdJ3uWO3No5kwt5ybfuCCV42cp/UczLIzNbo0RW9Z9jBl5IFMzJaUQUfWV3Pp5QEPmpB7Anr/4W1EtjJPjpSIC/+jBmbrkvC/CSzzTPjaH9LzEQ5m4F5JpRw01blqgKH/153qfs1jRgZK6WVRuhe7yAATHCO/IM0DM+kC0mUJTcXKyv9pRm93E4wp+KzdHYy0LdA83wFgMmvlB8pcm20ImAe7B2SBFx5TGtETa6ea6k2BS+DfBXe6sLBnrl1zZB8nxCDnYiwT1BJFxizgv3EJ6Krjd3cSSxr6PGnXDD/yTeFNJarpMbA+wR6AQetJ89LiDBXYiw6GPgWk/A4vUDIsIaXGqCpydeZHkr2ufS1Ap4yYS0Um2GeDeQXTsBTSCg7BViFgduUI1NPYT1avKg7b64nsdpdjBVofOvzJsgiT66WlaJmt23BUCJsnmXwwEcW1387b4G+Q="
    
    script:
        - mvn clean install org.jacoco:jacoco-maven-plugin:prepare-agent sonar:sonar
    
  5. 提交并将更改推送到存储库中,Travis CI 开始工作并导致:

    无法在项目 gistintex 上执行目标 org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.1.1168:sonar (default-cli):未授权。请检查属性 sonar.login 和 sonar.password。

错误可以在我的Travis CI build上找到。我做错了什么?

我已经浏览了使用 Travis CI 和 Sonarcloud 时出现的错误:未授权。请检查属性 sonar.login 和 sonar.password SO 问题和Travis CI Sonarqube 分析文章,但不幸的是,这对我没有帮助。我的GitHub 项目源码


我试图将这些插件添加到pom.xml本地并在本地运行分析:

  • org.codehaus.mojo:声纳-Maven 插件:5.1
  • org.sonarsource.scanner.maven:声纳-maven-插件:3.4.1.1168

在我的机器上运行它会导致正确的Sonarcloud 分析

mvn sonar:sonar \
   -Dsonar.organization=nicharnet-github \
   -Dsonar.host.url=https://sonarcloud.io \
   -Dsonar.login=e53.....239

但是,我的目标是使用 Travis CI 在每个提交的版本之后运行分析。我确定我做错了密钥加密,但我不知道到底是什么。

4

1 回答 1

4

当您在没有登录命令的情况下对 travis.com 而不是 travis.org 执行生成时,通常会发生密钥加密问题

为了在每次提交上运行,您可以将您的 repo 与SonarCloud Scan连接,在您的 sonarcloud.io 项目页面中生成一个秘密,您将在那里找到修改 .travis.yml 的说明

如果你使用 travis.org

travis encrypt <YOUR_SONAR_SECRET>

如果你使用 travis.com

travis login --pro

然后像这样生成你的令牌:

travis encrypt --pro <YOUR_SONAR_SECRET>

最后,您需要将管道指令添加到 .travis.yml 文件中

在应该触发 Travis CI 存储库设置时检查它 在此处输入图像描述

这里有一些相关链接:

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

https://docs.travis-ci.com/user/encryption-keys/#usage

https://github.com/marketplace/actions/sonarcloud-scan

https://sonarcloud.io/documentation/integrations/github/

于 2020-02-16T22:50:09.950 回答