使用Travis,Maven和github的Sonarcloud失败

Mar*_*oth 2 java github maven travis-ci sonarqube

我工作的项目(日食/扫描)使用Travis和Sonar进行持续集成和代码分析.

上周,我注意到构建在声纳步骤失败了:

ERROR: Error during SonarQube Scanner execution
org.sonar.squidbridge.api.AnalysisException: Please provide compiled classes of your project with sonar.java.binaries property
Run Code Online (Sandbox Code Playgroud)

经过一番研究,我想我解决了这个问题,通过更新的addons:部分(sonarqube到sonarcloud),并切换到使用- mvn -q sonar:sonar,而不是- sonar-scanner在script:一节的.travis.yml文件.

现在,在声纳步骤中出于不同原因,外部拉动请求(来自叉子)使其通过集成测试失败:

$ mvn -q sonar:sonar
...
[ERROR] SonarQube server [http://localhost:9000] can not be reached

[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.3.0.603:sonar (default-cli) on project org.eclipse.scanning: Unable to execute SonarQube: Fail to get bootstrap index from server: Failed to connect to localhost/127.0.0.1:9000: Connection refused (Connection refused) -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

这似乎与日志中早期的差异有关:

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#Pull-Requests-and-Security-Restrictions
Run Code Online (Sandbox Code Playgroud)

和一个完全缺失的SonarCloud插件部分.

要查看差异,请将失败的构建#625(来自分叉仓库的拉取请求)与成功构建#628(来自仓库中的拉取请求)进行比较.

大约一个月前,外拉工作没有问题,例如建造#536过去了,有运行Setting environment variables from repository settings,SonarCloud addon并sonar-scanner正确.

然而,后续构建,例如build#538已通过,但仅仅是因为sonar-scanner跳过分析,exited with 0即使它们无法运行.

虽然我可能只是在外部拉取请求上禁用Sonar,但如果我可以修复我们的存储库,那么我们在内部和外部拉取请求上都进行了集成测试和代码分析,这样会很好

  • 我的原始修复是正确的吗?
    • 如果是这样,我如何让它与内部和外部拉取请求一起使用?
    • 如果没有,我该如何解决原来的问题呢?

请注意,这个问题已经取代了如何让Sonarcloud运行来自Travis,Maven和github的分叉请求,这些请求专注于潜在的问题,而不是试图修复一些症状.

G. *_*eam 7

您的PR分析正在尝试(并且失败)使用默认服务器:localhost:9000.

在另一种情况下,您将更新settings.xml以指定位置,但由于您使用的是Travis,因此您将在命令行上传递它:mvn sonar:sonar -Dsonar.host.url=https://sonarcloud.io

顺便说一下,这是在你正常的Travis构建中工作,因为Travis的SonarQube集成特别是Travis- SonarCloud集成,因此服务器自动填充.