2016-07-06 5 views
7

analiz moich projektów nie udaje się SonarQube 5.6, po aktualizacji wtyczki Java z wersji 3.14 do 4.0.API niezgodność z SonarQube 5.6 i Java Analyzer 4.0 z Findbugs 3.3 lub Cobertura 1.6.3

W mojej instancji SonarQube, oprócz innych wtyczek, aktualnie mam wtyczkę Findbugs (wersja 3.3) i wtyczkę Cobertura (1.6.3), które wymagają wtyczki Java.

Patrząc na dziennik, pojawia się następujący komunikat:

[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.1-build231:sonar (default-cli) 
    on project MyProject: Execution default-cli of goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.1-build231:sonar failed: 

    An API incompatibility was encountered while executing org.sonarsource.scanner.maven:sonar-maven-plugin:3.1-build231:sonar: 

    java.lang.NoSuchMethodError: 
    org.sonar.plugins.java.api.JavaResourceLocator.findResourceByClassName(Ljava/lang/String;)Lorg/sonar/api/resources/Resource; 

... 

Caused by: java.lang.NoSuchMethodError: org.sonar.plugins.java.api.JavaResourceLocator.findResourceByClassName(Ljava/lang/String;)Lorg/sonar/api/resources/Resource; 
    at org.sonar.plugins.findbugs.FindbugsSensor.analyse(FindbugsSensor.java:108) 
    at org.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:58) 
    at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:50) 
    at org.sonar.batch.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:83) 
    at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:192) 
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142) 
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127) 
    at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:241) 
    at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:236) 
    at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:226) 
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142) 
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127) 
    at org.sonar.batch.task.ScanTask.execute(ScanTask.java:47) 
    at org.sonar.batch.task.TaskContainer.doAfterStart(TaskContainer.java:86) 
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142) 
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127) 
    at org.sonar.batch.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:106) 
    at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:119) 
    at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:62) 
    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:498) 
    at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60) 
    at com.sun.proxy.$Proxy21.execute(Unknown Source) 
    at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:240) 
    at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151) 
    at org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute(ScannerBootstrapper.java:78) 
    at org.sonarsource.scanner.maven.SonarQubeMojo.execute(SonarQubeMojo.java:112) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132) 
    ... 20 more 

Co należy zrobić, aby moje analizy nie braku?

Odpowiedz

12

Wersja 4.0 z SonarQube Java Analyzer wprowadzonych zmian w jego API, aby pozostawać zgodne z nowym API SonarQube 5.6 LTS (Long Term Wsparcia).

Niestety, te zmiany potencjalnie przerwały kompatybilność z wtyczką bezpośrednio bazując na Java Analyzer. Jeśli nie ma to wpływu na wersje z ostatnimi wydanymi wersjami PMD i Checkstyle, wersja 3.3 z Findbugs jest niestety już nie kompatybilna, a także wersja 1.6.3 wtyczki Cobertura.

W celu rozwiązania problemu z Findbugs, masz następujące opcje:

  • Aktualizacja do wersji> = 3.4 wtyczki Findbugs, który jest obecnie w prośba o informację zwrotną okresie (see this thread) i powinien wkrótce zostać udostępniony (confirmed with version 3.4.2).
  • Usuń wtyczkę Findbugs lub tymczasowo wyłącz jej reguły.

Dla wtyczki Cobertury, zaktualizuj do wersji> = 1.7 (wymaga LTS 5.6 i Java 8), które rozwiązują problem. Aktualizacja powinna być dostępna za pomocą interfejsu użytkownika SonarQube.

0

Miałem ten sam problem, aktualizowanie wersji cobertura-1.7 findbugs-3.4.3 i java Analyzer-4.1 rozwiązało problem.