2016-11-18 6 views
0

Я использовал SonarQube 5.4 с Jenkins и MAven build (используя Prepare sonarqube environement, я мог бы вводить переменные среды). Тогда я решил перейти на 5.6.3LTS (в целях повышения последней (6.2)), но моя сборка больше не работает: S Я получил эту StackTrace, и я не понимаю, что это неправильно ...SonarQube Scanner + Jenkins + Maven = java.lang.ClassFormatError

[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar (default-cli) on project sopra-banking-framework-superpom: Execution default-cli of goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar failed: An API incompatibility was encountered while executing org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/persistence/metamodel/Attribute$PersistentAttributeType 
[ERROR] ----------------------------------------------------- 
[ERROR] realm = plugin>org.codehaus.mojo:sonar-maven-plugin:3.2 
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy 
[ERROR] urls[0] = file:/D:/m2repo/org/sonarsource/scanner/maven/sonar-maven-plugin/3.2/sonar-maven-plugin-3.2.jar 
[ERROR] urls[1] = file:/D:/m2repo/org/apache/maven/shared/maven-dependency-tree/2.2/maven-dependency-tree-2.2.jar 
[ERROR] urls[2] = file:/D:/m2repo/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar 
[ERROR] urls[3] = file:/D:/m2repo/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar 
[ERROR] urls[4] = file:/D:/m2repo/org/sonatype/plexus/plexus-sec-dispatcher/1.4/plexus-sec-dispatcher-1.4.jar 
[ERROR] urls[5] = file:/D:/m2repo/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar 
[ERROR] urls[6] = file:/D:/m2repo/org/codehaus/plexus/plexus-utils/3.0.22/plexus-utils-3.0.22.jar 
[ERROR] urls[7] = file:/D:/m2repo/org/sonarsource/scanner/api/sonar-scanner-api/2.8/sonar-scanner-api-2.8.jar 
[ERROR] urls[8] = file:/D:/m2repo/commons-lang/commons-lang/2.6/commons-lang-2.6.jar 
[ERROR] urls[9] = file:/D:/m2repo/com/google/code/findbugs/jsr305/2.0.3/jsr305-2.0.3.jar 
[ERROR] Number of foreign imports: 1 
[JENKINS] Archiving C:\Jenkins\workspace\SBF-trunk-deploy\workspace\sopra-banking-framework-superpom\sopra-banking-framework\pom.xml to com.sopra.banking/sopra-banking-framework/1.13.2-SNAPSHOT/sopra-banking-framework-1.13.2-SNAPSHOT.pom 
[ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]] 

My SonarScanner автоматически устанавливается (v2.8), и мой бегун maven установлен последним (v3.2).

Не стесняйтесь спрашивать меня ни о чем!

Edit 1: Это полный журнал:

[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar (default-cli) on project sopra-banking-framework-superpom: Execution default-cli of goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar failed: An API incompatibility was encountered while executing org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/persistence/metamodel/Attribute$PersistentAttributeType 
[ERROR] ----------------------------------------------------- 
[ERROR] realm = plugin>org.codehaus.mojo:sonar-maven-plugin:3.2 
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy 
[ERROR] urls[0] = file:/D:/m2repo/org/sonarsource/scanner/maven/sonar-maven-plugin/3.2/sonar-maven-plugin-3.2.jar 
[ERROR] urls[1] = file:/D:/m2repo/org/apache/maven/shared/maven-dependency-tree/2.2/maven-dependency-tree-2.2.jar 
[ERROR] urls[2] = file:/D:/m2repo/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar 
[ERROR] urls[3] = file:/D:/m2repo/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar 
[ERROR] urls[4] = file:/D:/m2repo/org/sonatype/plexus/plexus-sec-dispatcher/1.4/plexus-sec-dispatcher-1.4.jar 
[ERROR] urls[5] = file:/D:/m2repo/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar 
[ERROR] urls[6] = file:/D:/m2repo/org/codehaus/plexus/plexus-utils/3.0.22/plexus-utils-3.0.22.jar 
[ERROR] urls[7] = file:/D:/m2repo/org/sonarsource/scanner/api/sonar-scanner-api/2.8/sonar-scanner-api-2.8.jar 
[ERROR] urls[8] = file:/D:/m2repo/commons-lang/commons-lang/2.6/commons-lang-2.6.jar 
[ERROR] urls[9] = file:/D:/m2repo/com/google/code/findbugs/jsr305/2.0.3/jsr305-2.0.3.jar 
[ERROR] Number of foreign imports: 1 
[ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]] 
[ERROR] 
[ERROR] ----------------------------------------------------- 
[ERROR] -> [Help 1] 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar (default-cli) on project sopra-banking-framework-superpom: Execution default-cli of goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar failed: An API incompatibility was encountered while executing org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/persistence/metamodel/Attribute$PersistentAttributeType 
----------------------------------------------------- 
realm = plugin>org.codehaus.mojo:sonar-maven-plugin:3.2 
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy 
urls[0] = file:/D:/m2repo/org/sonarsource/scanner/maven/sonar-maven-plugin/3.2/sonar-maven-plugin-3.2.jar 
urls[1] = file:/D:/m2repo/org/apache/maven/shared/maven-dependency-tree/2.2/maven-dependency-tree-2.2.jar 
urls[2] = file:/D:/m2repo/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar 
urls[3] = file:/D:/m2repo/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar 
urls[4] = file:/D:/m2repo/org/sonatype/plexus/plexus-sec-dispatcher/1.4/plexus-sec-dispatcher-1.4.jar 
urls[5] = file:/D:/m2repo/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar 
urls[6] = file:/D:/m2repo/org/codehaus/plexus/plexus-utils/3.0.22/plexus-utils-3.0.22.jar 
urls[7] = file:/D:/m2repo/org/sonarsource/scanner/api/sonar-scanner-api/2.8/sonar-scanner-api-2.8.jar 
urls[8] = file:/D:/m2repo/commons-lang/commons-lang/2.6/commons-lang-2.6.jar 
urls[9] = file:/D:/m2repo/com/google/code/findbugs/jsr305/2.0.3/jsr305-2.0.3.jar 
Number of foreign imports: 1 
import: Entry[import from realm ClassRealm[maven.api, parent: null]] 

----------------------------------------------------- 

    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) 
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) 
    at org.jvnet.hudson.maven3.launcher.Maven33Launcher.main(Maven33Launcher.java:129) 
    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.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:330) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:238) 
    at jenkins.maven3.agent.Maven33Main.launch(Maven33Main.java:176) 
    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 hudson.maven.Maven3Builder.call(Maven3Builder.java:133) 
    at hudson.maven.Maven3Builder.call(Maven3Builder.java:68) 
    at hudson.remoting.UserRequest.perform(UserRequest.java:153) 
    at hudson.remoting.UserRequest.perform(UserRequest.java:50) 
    at hudson.remoting.Request$2.run(Request.java:336) 
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar failed: An API incompatibility was encountered while executing org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/persistence/metamodel/Attribute$PersistentAttributeType 
----------------------------------------------------- 
realm = plugin>org.codehaus.mojo:sonar-maven-plugin:3.2 
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy 
urls[0] = file:/D:/m2repo/org/sonarsource/scanner/maven/sonar-maven-plugin/3.2/sonar-maven-plugin-3.2.jar 
urls[1] = file:/D:/m2repo/org/apache/maven/shared/maven-dependency-tree/2.2/maven-dependency-tree-2.2.jar 
urls[2] = file:/D:/m2repo/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar 
urls[3] = file:/D:/m2repo/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar 
urls[4] = file:/D:/m2repo/org/sonatype/plexus/plexus-sec-dispatcher/1.4/plexus-sec-dispatcher-1.4.jar 
urls[5] = file:/D:/m2repo/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar 
urls[6] = file:/D:/m2repo/org/codehaus/plexus/plexus-utils/3.0.22/plexus-utils-3.0.22.jar 
urls[7] = file:/D:/m2repo/org/sonarsource/scanner/api/sonar-scanner-api/2.8/sonar-scanner-api-2.8.jar 
urls[8] = file:/D:/m2repo/commons-lang/commons-lang/2.6/commons-lang-2.6.jar 
urls[9] = file:/D:/m2repo/com/google/code/findbugs/jsr305/2.0.3/jsr305-2.0.3.jar 
Number of foreign imports: 1 
import: Entry[import from realm ClassRealm[maven.api, parent: null]] 

----------------------------------------------------- 

    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:183) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) 
    ... 31 more 
Caused by: org.apache.maven.plugin.PluginContainerException: An API incompatibility was encountered while executing org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/persistence/metamodel/Attribute$PersistentAttributeType 
----------------------------------------------------- 
realm = plugin>org.codehaus.mojo:sonar-maven-plugin:3.2 
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy 
urls[0] = file:/D:/m2repo/org/sonarsource/scanner/maven/sonar-maven-plugin/3.2/sonar-maven-plugin-3.2.jar 
urls[1] = file:/D:/m2repo/org/apache/maven/shared/maven-dependency-tree/2.2/maven-dependency-tree-2.2.jar 
urls[2] = file:/D:/m2repo/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar 
urls[3] = file:/D:/m2repo/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar 
urls[4] = file:/D:/m2repo/org/sonatype/plexus/plexus-sec-dispatcher/1.4/plexus-sec-dispatcher-1.4.jar 
urls[5] = file:/D:/m2repo/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar 
urls[6] = file:/D:/m2repo/org/codehaus/plexus/plexus-utils/3.0.22/plexus-utils-3.0.22.jar 
urls[7] = file:/D:/m2repo/org/sonarsource/scanner/api/sonar-scanner-api/2.8/sonar-scanner-api-2.8.jar 
urls[8] = file:/D:/m2repo/commons-lang/commons-lang/2.6/commons-lang-2.6.jar 
urls[9] = file:/D:/m2repo/com/google/code/findbugs/jsr305/2.0.3/jsr305-2.0.3.jar 
Number of foreign imports: 1 
import: Entry[import from realm ClassRealm[maven.api, parent: null]] 

----------------------------------------------------- 

    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:181) 
    ... 32 more 
Caused by: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/persistence/metamodel/Attribute$PersistentAttributeType 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:411) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at net.sourceforge.pmd.lang.java.typeresolution.PMDASMClassLoader.loadClass(PMDASMClassLoader.java:65) 
    at net.sourceforge.pmd.lang.java.typeresolution.ClassTypeResolver.populateType(ClassTypeResolver.java:664) 
    at net.sourceforge.pmd.lang.java.typeresolution.ClassTypeResolver.visit(ClassTypeResolver.java:179) 
    at net.sourceforge.pmd.lang.java.ast.ASTImportDeclaration.jjtAccept(ASTImportDeclaration.java:62) 
    at net.sourceforge.pmd.lang.java.ast.AbstractJavaNode.childrenAccept(AbstractJavaNode.java:55) 
    at net.sourceforge.pmd.lang.java.ast.JavaParserVisitorAdapter.visit(JavaParserVisitorAdapter.java:9) 
    at net.sourceforge.pmd.lang.java.ast.JavaParserVisitorAdapter.visit(JavaParserVisitorAdapter.java:136) 
    at net.sourceforge.pmd.lang.java.typeresolution.ClassTypeResolver.visit(ClassTypeResolver.java:170) 
    at net.sourceforge.pmd.lang.java.ast.ASTCompilationUnit.jjtAccept(ASTCompilationUnit.java:42) 
    at net.sourceforge.pmd.lang.java.typeresolution.TypeResolutionFacade.initializeWith(TypeResolutionFacade.java:17) 
    at net.sourceforge.pmd.lang.java.AbstractJavaHandler$5.start(AbstractJavaHandler.java:88) 
    at net.sourceforge.pmd.SourceCodeProcessor.usesTypeResolution(SourceCodeProcessor.java:127) 
    at net.sourceforge.pmd.SourceCodeProcessor.processSource(SourceCodeProcessor.java:142) 
    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:76) 
    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:43) 
    at org.sonar.plugins.pmd.PmdTemplate.process(PmdTemplate.java:82) 
    at org.sonar.plugins.pmd.PmdExecutor.executeRules(PmdExecutor.java:120) 
    at org.sonar.plugins.pmd.PmdExecutor.executePmd(PmdExecutor.java:90) 
    at org.sonar.plugins.pmd.PmdExecutor.execute(PmdExecutor.java:75) 
    at org.sonar.plugins.pmd.PmdSensor.analyse(PmdSensor.java:67) 
    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.scanRecursively(ProjectScanContainer.java:234) 
    at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:234) 
    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.$Proxy57.execute(Unknown Source) 
    at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233) 
    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:122) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) 
    ... 32 more 
[ERROR] 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException 
+1

FWIW - какую версию JVM вы используете? Java 8 требуется начиная с SonarQube 5.6. Вы пробовали другие проекты - они имеют такое же поведение? Также не могли бы вы предоставить более крупный журнал с меньшим объемом отсечения? – Godin

+0

JVM: 8u92, в моем другом проекте, я использую старое поведение с логином/паролем в другом проекте, и он работает, но теперь я хотел бы использовать токен аутентификации, новый от 5.3+ – nchal

+0

Так что кажется, что у вас нет таких же проблема с другими проектами, поэтому это не имеет ничего общего с обновлением. И на самом деле (смотря на «net.sourceforge.pmd.lang.java.typeresolution.PMDASMClassLoader» из большей выдержки из журнала), эта проблема вызвана неспособностью PMD работать с зависимостями вашего проекта. И поэтому не имеет никакого отношения к «токен аутентификации». В течение очень долгого времени существуют собственные правила SonarQube, которые заменяют правила PMD, поэтому вы можете отказаться от использования PMD, чтобы избавиться от этой проблемы. – Godin

ответ

0

Кажется (смотрит на net.sourceforge.pmd.lang.java.typeresolution.PMDASMClassLoa‌​der), что проблема вызвана неспособностью PMD справиться с зависимостями вашего проекта. В течение очень долгого времени существуют собственные правила SonarQube, которые заменяют правила PMD, поэтому вы можете отказаться от использования PMD, чтобы избавиться от этой проблемы.