SonarQube分析报告无法上传的问题

--  终极解析办法

INSERT
INTO `sonarqube`.`ce_queue` (`uuid`, `task_type`, `component_uuid`, `status`, `submitter_login`, `started_at`, `created_at`, `updated_at`) VALUES ('AVYIhJ4YMA7l-90atYoi', 'REPORT', 'AVYIhJ4YMA7l-90atYoi', 'PENDING', 'Administrator', '1469073061961', '1469073061961', '1469073061961');

由于SonarQube5.6 

api/ce/submit

接口报以下异常,导致jenkins构建结果显示为失败~:

Caused by: java.lang.NullPointerException: null
    at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1792) ~[commons-io-2.4.jar:2.4]
    at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1769) ~[commons-io-2.4.jar:2.4]
    at org.apache.commons.io.IOUtils.copy(IOUtils.java:1744) ~[commons-io-2.4.jar:2.4]
    at org.apache.commons.io.FileUtils.copyInputStreamToFile(FileUtils.java:1512) ~[commons-io-2.4.jar:2.4]
    at org.sonar.ce.queue.report.ReportFiles.save(ReportFiles.java:50) ~[sonar-server-5.6.jar:na]
java.lang.IllegalStateException: Fail to copy report to file: E:\sonarqube-5.6\data\ce\reports\AVYLKumeMA7l-90atYon.zip
    at org.sonar.ce.queue.report.ReportFiles.save(ReportFiles.java:54) ~[sonar-server-5.6.jar:na]
    at org.sonar.ce.queue.report.ReportSubmitter.submit(ReportSubmitter.java:79) ~[sonar-server-5.6.jar:na]
    at org.sonar.server.ce.ws.SubmitAction.handle(SubmitAction.java:86) ~[sonar-server-5.6.jar:na]
    at org.sonar.server.ws.WebServiceEngine.execute(WebServiceEngine.java:107) ~[sonar-server-5.6.jar:na]

问题是

https://github.com/SonarSource/sonarqube/blob/ee3f830341932b261bfc418d541e0dde49f8acd0/server/sonar-server/src/main/java/org/sonar/ce/queue/report/ReportSubmitter.java

里面的报告上传失败,分析其过程是先由scanner把报告压缩为zip文件,然后通过 api/ce/submit 接口上传给sonarqube服务器,服务器在ce_quque表中插入一条挂起状态的后台任务记录。

 

 

于是我跳过这个接口,直接在mysql中插入该记录,最终正常

<Compile Include="MyFile.cs">
  <!-- Exclude the file from analysis -->
  <SonarQubeExclude>true</SonarQubeExclude>
</Compile>

 

=====================================奇怪的问题==============

http://docs.sonarqube.org/display/SCAN/Excluding+Artifacts+from+the+Analysis

VS中的项目排除代码分析后,再恢复的时候,sonar-project.properties 文件中仍然不包括该项目?!!

为解决此问题浪费几个小时。。。看源码,找文档(几乎没有)。。

后来显示的设置非测试项目解决问题

<PropertyGroup>
  <!-- 显式标记该项目不是测试项目 ,默认是由msbuild scanner自动检测的-->
  <SonarQubeTestProject>false</SonarQubeTestProject>
</PropertyGroup>

 

posted @ 2016-07-21 12:00  白菜89  阅读(6585)  评论(0编辑  收藏  举报