SonarQube на Java8-проекте дает jacoco-Exception
Я только что загрузил последнюю версию, SonarQube 4.3,
затем попробуйте создать проект java-8 с помощью:
mvn clean install
mvn sonar:sonar
Это дает мне исключение ниже.
Google, у меня сложилось впечатление, что это более ранняя проблема, которая должна была быть исправлена ...?
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?
Или любая подсказка, в чем проблема?
-------------------------------------------------------
T E S T S
-------------------------------------------------------
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"
Ответы
Ответ 1
Я получил недостающую информацию из списка рассылки SonarQube...
Подводя итог:
Чтобы получить Java8 maven-build, работающий на SonarQube-4.3:
Подождите минуту или около того, чтобы завершить обновление... затем выключите + перезапустите sonarqube.
Вернитесь в Центр обновления и убедитесь, что у вас есть плагин: 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
Что это.
Ответ 2
Здесь с Java 11 у меня была эта проблема, и я исправляю добавление этого в моих свойствах gradle:
jacoco {
toolVersion = "0.8.2"
}
Ответ 3
SonarQube 4.3 включает плагин Java 2.1, тогда как http://jira.codehaus.org/browse/SONARJAVA-482 исправлен в версии 2.2. Поэтому, обновив плагин Java до версии 2.2.1, это должно исправить вашу проблему.
Ответ 4
Я получал ту же ошибку, когда mvn создавал проект Java 1.7 с использованием JDK 1.8. Решение было простым: я изменил версию jacoco plugin version на новую версию:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.6.201602180812</version>
(Ранее проект использовал версию 0.6.3.201306030806.)
Ответ 5
Если вы используете Jacoco с Gradle, обновите Jacoco до последней версии.
Я также столкнулся с подобными проблемами, и это было исправлено после следующих изменений
Java 11 и Gradle
jacoco {
toolVersion = "0.8.4"
}
Ответ 6
У нас была такая же проблема. То, что мы сделали, это переустановить sonarqube 4.3 с уже установленной Java 8. Затем выполните анализ против гидролокатора. Если у вас уже есть сонар /java 7, который был установлен ранее и прошел анализ против него, похоже, что сонар устанавливает некоторые плагины, которые вызывают эти сбои. Если вы переустановите только сонар и java 8 (не удаляйте базу данных mysql и т.д.... так что история не повреждена) - повторите анализ, похоже, решает проблему с плагинами.