我的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>当从我的竹子服务器运行这段代码时,一切正常,并将分析发送到服务器。
然后我想在我的本地环境中运行一个预览报告。我的本地环境是运行在代理服务器后面的带有Java7的Mac10.11.2。
我在我的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 200OK。
看起来索引被接收回来了,但是.jar没有。
然后,我在我的web浏览器中手动浏览了jar地址,它被正确下载了。
然后,我断开了与公司网络的连接,转而连接到没有代理的电话上。
当像这样运行时,jars被下载,并且分析运行时没有问题。
当我将我的机器放回代理之后时,分析继续运行,没有问题,因为jars现在已经成功下载。
所以我的问题是,在代理之后下载jars的插件有没有bug?
我不能排除我的公司网络导致问题的可能性,但其他jar,包括sonar-maven-plugin jar本身都没有问题。
我的Sonarqube服务器版本是使用PostgreSQL后端的Amazon Linux上的5.1-1。
发布于 2016-03-29 23:08:41
此版本的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发布于 2016-01-29 17:08:28
一些用户已经报告说,一些公司代理正在根据用户代理过滤内容。这可能解释了为什么允许您从浏览器而不是Maven下载JAR。
https://stackoverflow.com/questions/35078304
复制相似问题