org.jvnet.hudson.test.JellyTestSuiteBuilder $ JellyTestSuite异常:IncompatibleClassChangeError:实现类

时间:2017-01-24 17:21:36

标签: java jenkins jenkins-plugins

尝试扩展Jenkins插件并在执行

mvn package

我从InjectedTest收到错误:

Running InjectedTest
Tests run: 18, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.1 sec <<< FAILURE! - in InjectedTest
org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyTestSuite(org.jvnet.hudson.test.junit.FailedTest)  Time elapsed: 0.024 sec  <<< ERROR!
java.lang.IncompatibleClassChangeError: Implementing class
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 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
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 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.eclipse.sisu.plexus.binders.PlexusAnnotatedBeanModule$PlexusSpaceModule.visitor(PlexusAnnotatedBeanModule.java:101)
at org.eclipse.sisu.binders.SpaceModule.configure(SpaceModule.java:92)
at org.eclipse.sisu.plexus.binders.PlexusAnnotatedBeanModule.configure(PlexusAnnotatedBeanModule.java:81)
at org.eclipse.sisu.plexus.binders.PlexusBindingModule.configure(PlexusBindingModule.java:65)
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:230)
at com.google.inject.spi.Elements.getElements(Elements.java:103)
at com.google.inject.spi.Elements.getElements(Elements.java:80)
at org.eclipse.sisu.binders.WireModule.configure(WireModule.java:60)
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:230)
at com.google.inject.spi.Elements.getElements(Elements.java:103)
at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:136)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
at com.google.inject.Guice.createInjector(Guice.java:96)
at com.google.inject.Guice.createInjector(Guice.java:73)
at com.google.inject.Guice.createInjector(Guice.java:62)
at org.codehaus.plexus.DefaultPlexusContainer.addPlexusInjector(DefaultPlexusContainer.java:476)
at org.codehaus.plexus.DefaultPlexusContainer.<init>(DefaultPlexusContainer.java:202)
at org.codehaus.plexus.DefaultPlexusContainer.<init>(DefaultPlexusContainer.java:166)
at hudson.maven.MavenEmbedderUtils.buildPlexusContainer(MavenEmbedderUtils.java:166)
at hudson.maven.MavenEmbedderUtils.buildPlexusContainer(MavenEmbedderUtils.java:159)
at hudson.maven.MavenEmbedder.<init>(MavenEmbedder.java:109)
at hudson.maven.MavenEmbedder.<init>(MavenEmbedder.java:136)
at org.jvnet.hudson.test.HudsonTestCase$7.decorateHome(HudsonTestCase.java:1326)
at org.jvnet.hudson.test.HudsonTestCase.newHudson(HudsonTestCase.java:486)
at org.jvnet.hudson.test.HudsonTestCase.setUp(HudsonTestCase.java:318)
at org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyTestSuite.setUp(JellyTestSuiteBuilder.java:143)
at org.jvnet.hudson.test.junit.GroupedTest.run(GroupedTest.java:49)
at junit.framework.TestSuite.runTest(TestSuite.java:252)
at junit.framework.TestSuite.run(TestSuite.java:247)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)

有关如何解决此问题的任何线索?尝试重新编译所有内容并更改pom.xml文件中的版本。如果我的Java类缺少某些东西,我该如何找到它?

1 个答案:

答案 0 :(得分:1)

主要原因是依赖冲突 - 尝试查找并解决所有冲突。

作为一种解决方法,您可以使用maven-hpi-plugin的配置关闭InjectedTest

<plugin>
    <groupId>org.jenkins-ci.tools</groupId>
    <artifactId>maven-hpi-plugin</artifactId>
    <configuration>
        <disabledTestInjection>true</disabledTestInjection>
    </configuration>
</plugin>

jenkins-dev小组讨论了同样的问题: