Подтвердить что ты не робот

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"
4b9b3361

Ответ 1

Я получил недостающую информацию из списка рассылки SonarQube... Подводя итог:

Чтобы получить Java8 maven-build, работающий на SonarQube-4.3:

  • Установите sonarqube-4.3 и запустите сервер.

  • Войдите в web-gui = > Настройки = > Центр обновлений = > Обновления плагинов = > Java = > Нажмите "Обновить до 2.2.1"

Подождите минуту или около того, чтобы завершить обновление... затем выключите + перезапустите 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 и т.д.... так что история не повреждена) - повторите анализ, похоже, решает проблему с плагинами.