Java8项目上的SonarQube提供了jacoco-Exception

我刚刚下载了最新版本SonarQube 4.3,然后尝试使用以下命令构建一个java-8项目:

mvn clean install mvn sonar:sonar 

这给了我下面的例外情况。

谷歌搜索,我得到的印象这是一个应该修复的早期问题……?

http://sonarqube.15.x6.nabble.com/Sonar-analyze-Java-1-8-project-Failure-td5023663.html

http://jira.codehaus.org/browse/SONARJAVA-482

SonarQube 4.3是否支持java-8?

或者任何线索,有什么问题?

 ------------------------------------------------------- TESTS ------------------------------------------------------- java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386) at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401) Caused by: java.lang.RuntimeException: Class java/util/UUID could not be instrumented. at org.jacoco.agent.rt.internal_6effb9e.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:138) at org.jacoco.agent.rt.internal_6effb9e.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:99) at org.jacoco.agent.rt.internal_6effb9e.PreMain.createRuntime(PreMain.java:55) at org.jacoco.agent.rt.internal_6effb9e.PreMain.premain(PreMain.java:47) ... 6 more Caused by: java.lang.NoSuchFieldException: $jacocoAccess at java.lang.Class.getField(Class.java:1690) at org.jacoco.agent.rt.internal_6effb9e.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:136) ... 9 more FATAL ERROR in native method: processing of -javaagent failed Exception in thread "main" 

我从SonarQube邮件列表中得到了缺失的信息……总结一下:

要在SonarQube-4.3上运行Java8 maven-build:

  • 安装sonarqube-4.3,然后启动服务器。

  • 登录web-gui =>设置=>更新中心=>插件更新=> Java =>点击“升级到2.2.1”

等一下左右升级完成…然后关机+重启sonarqube。 返回升级中心并validation您是否有插件: Java 2.2.1

  • 要在Sonar中获取代码覆盖率,您现在需要使用以下命令构建:

     mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install mvn sonar:sonar 

参考: http : //docs.codehaus.org/display/SONAR/JaCoCo+Plugin

而已。

SonarQube 4.3嵌入了Java插件2.1,而http://jira.codehaus.org/browse/SONARJAVA-482已在2.2版中修复。 因此,通过将Java插件升级到2.2.1版本,这应该可以解决您的问题。

我们遇到了同样的问题。 我们所做的是重新安装了已安装Java 8的sonarqube 4.3。 然后对声纳进行分析。 如果您之前已经安装了sonar / java 7并对其进行了分析,那么声纳似乎会安装一些导致这些故障的插件。 如果你重新安装只是声纳和java 8(不要删除mysql数据库等…所以历史是完整的) – 重新运行你的分析它似乎解决了插件的问题。

当mvn使用JDK 1.8构建Java 1.7项目时,我遇到了同样的错误。 解决方案很简单:我将jacoco插件版本更改为更新版本:

  org.jacoco jacoco-maven-plugin 0.7.6.201602180812 

(该项目之前使用的是0.6.3.201306030806版本。)