2016-07-06 41 views
7

Le analisi dei miei progetti non riescono con SonarQube 5.6, dopo l'aggiornamento del Java Plugin dalla versione 3.14-4.0.API incompatibilità con SonarQube 5.6 e Java Analyzer 4.0 con Findbugs 3.3 o 1.6.3 Cobertura

Nella mia istanza SonarQube, tra gli altri plugin, attualmente ho il plug-in Findbugs (versione 3.3) e il plug-in Cobertura (1.6.3) che richiedono il plug-in Java.

Guardando il registro, ricevo il seguente messaggio:

[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 

Cosa devo fare per ottenere la mia analisi non mancando?

risposta

12

versione 4.0 delle SonarQube Java Analyzer modifiche introdotte nella sua API, al fine di rimanere in linea con la nuova API di SonarQube 5.6 LTS (Long Term Support).

Sfortunatamente, queste modifiche hanno potenzialmente interrotto la compatibilità con il plug-in direttamente facendo affidamento su Java Analyzer. Se le ultime versioni rilasciate dei plugin PMD e Checkstyle non sono interessate, la versione 3.3 di Findbugs non è purtroppo più compatibile, così come la versione 1.6.3 del plug-in Cobertura.

Al fine di risolvere la questione con Findbugs, sono disponibili le seguenti opzioni:

  • Aggiornamento alla versione> = 3.4 del plugin Findbugs, che è attualmente in Richiesta Per il periodo Commenti (see this thread), e dovrebbe essere rilasciato presto (confirmed with version 3.4.2).
  • Rimuovere il plug-in di Findbugs o disabilitarne temporaneamente le regole.

Per il plug-in Cobertura, aggiornare alla versione> = 1.7 (richiede LTS 5.6 e Java 8), che risolvono il problema. L'aggiornamento dovrebbe essere disponibile utilizzando l'interfaccia utente di SonarQube.

0

Ho riscontrato lo stesso problema, l'aggiornamento delle versioni di cobertura-1.7 findbugs-3.4.3 e java Analyzer-4.1 ha risolto il problema.