我在我的 Github 上有一个实验项目,用于练习 CI 服务集成。我很难使用 Sonarcloud。
我都关注了 Tavis CI + Sonarcloud教程和Maven example . Mz 的第一个混淆是从 token 和属性文件开始的,而第一个来源建议创建 sonar-project.properties
文件,而 Maven 示例源没有任何内容。此处文档非常不清楚。
我忽略了属性文件并完成了以下步骤:
在 sonarcloud.io 上生成 token 对于我的项目:
e53.......239
travis-encrypt.github.io 上的加密 token 因为它是 Windows 用户最舒适的方式。以下 2 个输入导致
g3s.....+Q=
:NicharNET/Gistintex
SONAR_TOKEN="e53...239"
- 我尝试在引号和不引号之间都换行。
已添加到设置 -> 环境变量 key
SONAR_TOKEN
以及生成的 Sonarcloud tokene53...239
的值。使用安全 token 完成 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
提交更改并将更改推送到存储库中,Travis CI 开始工作并导致:
Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.1.1168:sonar (default-cli) on project gistintex: Not authorized. Please check the properties sonar.login and sonar.password.
错误可以在我的 Travis CI build 上找到.我做错了什么?
我浏览了Error using Travis CI with Sonarcloud: Not authorized. Please check the properties sonar.login and sonar.password所以问题和Travis CI Sonarqube analysis文章,不幸的是这对我没有帮助。我的GitHub project source .
我尝试将这些插件添加到 pom.xml
并在本地运行分析:
- org.codehaus.mojo: sonar-maven-plugin: 5.1
- org.sonarsource.scanner.maven: sonar-maven-plugin: 3.4.1.1168
在我的机器上运行它得到了正确的 Sonarcloud analysis :
mvn sonar:sonar \
-Dsonar.organization=nicharnet-github \
-Dsonar.host.url=https://sonarcloud.io \
-Dsonar.login=e53.....239
但是,我的目标是使用 Travis CI 在每个提交的版本之后运行分析。我确定我做错了 key 加密,但我无法弄清楚到底是什么。
最佳答案
key 加密问题一般发生在travis.com而不是travis.org执行没有login命令的生成
为了在每次提交时运行,您可以将您的存储库与 SonarCloud Scan 连接起来,在你的 sonarcloud.io 项目页面生成一个 secret ,在那里你会找到修改你的 .travis.yml 的说明
如果您使用 travis.org
travis encrypt <YOUR_SONAR_SECRET>
如果您使用 travis.com
travis login --pro
然后像这样生成你的 token :
travis encrypt --pro <YOUR_SONAR_SECRET>
最后,您需要将流水线指令添加到您的 .travis.yml 文件中
这里是一些相关链接:
https://docs.travis-ci.com/user/encryption-keys/#usage
关于java - Sonarcloud 未被授权使用 Travis CI 和 Maven,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51123056/