sonar-maven-plugin不会下载代理

时间:2016-01-29 06:36:13

标签: maven jar proxy sonarqube

我在pom.xml中有以下内容来启用声纳插件:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>sonar-maven-plugin</artifactId>
  <version>2.7.1</version>
</plugin>

我还设置了属性来定义在端口80上运行的服务器:

<properties>
  <sonar.host.url>http://sonar.for.truelocal.com.au/</sonar.host.url>
</properties>

从我的Bamboo服务器运行时,一切正常,分析将发送到服务器。

然后我想在我的本地环境中运行预览报告。我的本地环境是Mac 10.11.2,其中Java 7位于代理服务器后面。

我在dev Maven个人资料中添加了一些额外的属性:

<sonar.analysis.mode>preview</sonar.analysis.mode>
<sonar.issuesReport.console.enable>true</sonar.issuesReport.console.enable>
<sonar.issuesReport.html.enable>true</sonar.issuesReport.html.enable>

不幸的是,声纳步骤失败了以下内容:

[DEBUG] Create : /Users/w26702/.sonar/cache/_tmp
[DEBUG] Extract sonar-runner-batch in temp...
[DEBUG] Get bootstrap index...
[DEBUG] Download: http://sonar.for.truelocal.com.au/batch_bootstrap/index
[DEBUG] Get bootstrap completed
[DEBUG] Download http://sonar.for.truelocal.com.au/batch/sonar-batch-shaded-5.2.jar to /Users/w26702/.sonar/cache/_tmp/fileCache3157929989449184462.tmp
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.1:sonar (default) on project truelocal-api: Fail to download libraries from server: Fail to download sonar-batch-shaded-5.2.jar to /Users/w26702/.sonar/cache/_tmp/fileCache3157929989449184462.tmp: timeout: Read timed out -> [Help 1]

请注意,最后一行是指定一个与我在pom中引用的插件不同的插件。这是因为在org.codehaus.mojo 2.7.1不起作用之后我切换到了org.sonarsource.scanner.maven 3.0.1,但它没有任何区别。

我在运行构建时登录到我的sonarqube服务器并通过访问日志进行了操作,实际上我看到了/ batch_bootstrap / index和/batch/sonar-batch-shaded-5.2.jar对HTTP 200 OKs的请求。

似乎收到了索引但是.jar不是。

然后我只是在我的网络浏览器中手动浏览jar地址并正确下载。

然后我从公司网络断开连接,而是连接到没有代理的手机。

当像这样运行时,下载罐子并且分析运行没有问题。

当我将我的机器放回代理后面时,分析继续运行而没有问题,因为现在已经成功下载了jar。

所以我的问题是,在代理后面下载jar的插件是否存在错误?

我不能排除我的公司网络导致问题的可能性,但包括声纳-maven-plugin jar在内的其他罐子本身没有问题。

我的Sonarqube服务器版本在带有PostgreSQL后端的Amazon Linux上为5.1-1。

2 个答案:

答案 0 :(得分:3)

此版本的sonar-maven-plugin似乎无法从Maven settings.xml获取代理参数

所以你需要为javaOpts提供代理参数:

例如:

mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.1:sonar -Dhttp.proxyHost=proxy.mycompagny.com -Dhttp.proxyPort=8080 -Dhttps.proxyHost=proxy.mycompagny.com -Dhttps.proxyPort=8080

答案 1 :(得分:0)

有些用户已经报告某些公司代理正在根据用户代理过滤内容。这可以解释为什么允许您从浏览器而不是从Maven下载JAR。