【问题标题】:SonarQube Jenkins plugin - ClassNotFoundException: org.sonar.api.batch.TimeMachineSonarQube Jenkins 插件 - ClassNotFoundException: org.sonar.api.batch.TimeMachine
【发布时间】:2016-02-21 18:59:49
【问题描述】:

当我使用 Jenkins 插件运行 SonarQube 时,分析失败。

我使用以下环境:

Jenkins 版本 1.627 SonarQube 5.2 版 SonarQube 插件 2.3 版(我也试过 2.21 版)

完整的日志:

[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.7.1:sonar (default-cli) on project parent.pom: Unable to register extension es.excentia.sonar.citymodel.CityDecorator: Lorg/sonar/api/batch/TimeMachine;: org.sonar.api.batch.TimeMachine -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.7.1:sonar (default-cli) on project parent.pom: Unable to register extension es.excentia.sonar.citymodel.CityDecorator
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)
    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.apache.maven.cli.MavenCli.execute(MavenCli.java:862)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:197)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Unable to register extension es.excentia.sonar.citymodel.CityDecorator
    at org.codehaus.mojo.sonar.bootstrap.ExceptionHandling.handle(ExceptionHandling.java:41)
    at org.codehaus.mojo.sonar.bootstrap.RunnerBootstrapper.execute(RunnerBootstrapper.java:104)
    at org.codehaus.mojo.sonar.SonarMojo.execute(SonarMojo.java:135)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    ... 20 more
Caused by: java.lang.IllegalStateException: Unable to register extension es.excentia.sonar.citymodel.CityDecorator
    at org.sonar.core.platform.ComponentContainer.addExtension(ComponentContainer.java:206)
    at org.sonar.batch.bootstrap.ExtensionInstaller.doInstall(ExtensionInstaller.java:72)
    at org.sonar.batch.bootstrap.ExtensionInstaller.install(ExtensionInstaller.java:52)
    at org.sonar.batch.scan.ModuleScanContainer.addExtensions(ModuleScanContainer.java:179)
    at org.sonar.batch.scan.ModuleScanContainer.doBeforeStart(ModuleScanContainer.java:95)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:98)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:85)
    at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:258)
    at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:253)
    at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:251)
    at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:251)
    at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:243)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:100)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:85)
    at org.sonar.batch.bootstrap.GlobalContainer.executeAnalysis(GlobalContainer.java:153)
    at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:110)
    at org.sonar.runner.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:55)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.sonar.runner.impl.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:61)
    at com.sun.proxy.$Proxy25.execute(Unknown Source)
    at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:275)
    at org.sonar.runner.api.EmbeddedRunner.runAnalysis(EmbeddedRunner.java:166)
    at org.sonar.runner.api.EmbeddedRunner.runAnalysis(EmbeddedRunner.java:153)
    at org.codehaus.mojo.sonar.bootstrap.RunnerBootstrapper.execute(RunnerBootstrapper.java:99)
    ... 23 more
Caused by: java.lang.NoClassDefFoundError: Lorg/sonar/api/batch/TimeMachine;
    at java.lang.Class.getDeclaredFields0(Native Method)
    at java.lang.Class.privateGetDeclaredFields(Class.java:2436)
    at java.lang.Class.getDeclaredFields(Class.java:1806)
    at org.picocontainer.injectors.AdaptingInjection$2.run(AdaptingInjection.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.picocontainer.injectors.AdaptingInjection.injectionFieldAnnotated(AdaptingInjection.java:209)
    at org.picocontainer.injectors.AdaptingInjection.fieldAnnotatedInjectionAdapter(AdaptingInjection.java:188)
    at org.picocontainer.injectors.AdaptingInjection.createComponentAdapter(AdaptingInjection.java:57)
    at org.picocontainer.behaviors.AbstractBehaviorFactory.createComponentAdapter(AbstractBehaviorFactory.java:44)
    at org.picocontainer.behaviors.OptInCaching.createComponentAdapter(OptInCaching.java:45)
    at org.picocontainer.DefaultPicoContainer.addComponent(DefaultPicoContainer.java:536)
    at org.picocontainer.DefaultPicoContainer.access$300(DefaultPicoContainer.java:84)
    at org.picocontainer.DefaultPicoContainer$AsPropertiesPicoContainer.addComponent(DefaultPicoContainer.java:1149)
    at org.sonar.core.platform.ComponentContainer.addExtension(ComponentContainer.java:204)
    ... 49 more
Caused by: java.lang.ClassNotFoundException: org.sonar.api.batch.TimeMachine
    at org.sonar.classloader.ParentFirstStrategy.loadClass(ParentFirstStrategy.java:39)
    at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:87)
    at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:76)
    ... 63 more

【问题讨论】:

    标签: plugins jenkins sonarqube


    【解决方案1】:

    城市模型插件与 SQ 5.2 不兼容。在升级到 SQ 5.2 之前,它应该在更新中心页面中标记为“不支持”。

    【讨论】:

    • 那么,目前将 Jenkins 中的项目与 SQ 5.2 集成的方式是什么?
    • 我不明白你的问题。它与詹金斯无关。必须简单地卸载 City Model 插件。
    • 让我解释得更好。我使用 Jenkins 构建我的项目,并在每次构建后使用 Jenkins 插件运行 SQ 分析,该插件名为“SonarQube Plugin”,版本 2.3。 Jenkins 中的 SQ 插件有一个官方 URL,指向 docs.sonarqube.org/display/PLUG/SonarQube+Scanner+for+Jenkins(一个不存在的页面)。我无法控制插件,所以无法卸载“城市模型插件”。 Jenkins的SQ插件是SonarSource控制的吗?如果是这样,您能否为我们提供适用于 SQ 5.2 的 Jenkins 插件版本?谢谢
    猜你喜欢
    • 2016-01-20
    • 1970-01-01
    • 2017-04-30
    • 1970-01-01
    • 2022-07-22
    • 2017-02-06
    • 2019-03-14
    • 2018-06-08
    • 1970-01-01
    相关资源
    最近更新 更多