Eclipse Groovy:UNITSEST运行时发生冲突的模块版本

发布于 2025-01-28 07:13:08 字数 3251 浏览 2 评论 0原文

我使用的是Eclipse 2022-03(4.23.0),Groovy Devtools为4.5.0.V202203311327-E2203-REALE。

我的依赖项如下:

dependencies {
  implementation "org.codehaus.groovy:groovy:$groovyVersion"
  implementation "org.codehaus.groovy:groovy-json:$groovyVersion"
  implementation "org.codehaus.groovy:groovy-templates:$groovyVersion"
  implementation "org.codehaus.groovy:groovy-dateutil:$groovyVersion"
  implementation "org.codehaus.groovy:groovy-yaml:$groovyVersion"
    
  testImplementation "org.codehaus.groovy:groovy-all:$groovyVersion"
  testImplementation "org.codehaus.groovy:groovy-xml:$groovyVersion"
}

使用groovyversion = 3.0.10

当我进行这样的测试时:

class GrantASTTransformationTest extends GroovyTestCase {

  @Test
  void 'some test'() {
    fail 'not implemented'
  }
}

抛出了例外:

java.lang.ExceptionInInitializerError
    at org.codehaus.groovy.reflection.ClassInfo.isValidWeakMetaClass(ClassInfo.java:284)
    at org.codehaus.groovy.reflection.ClassInfo.getMetaClassForClass(ClassInfo.java:254)
    at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:310)
    at io.lootwalk.ast.GrantASTTransformationTest.$getStaticMetaClass(GrantASTTransformationTest.groovy)
    at io.lootwalk.ast.GrantASTTransformationTest.<init>(GrantASTTransformationTest.groovy)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
......
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
Caused by: groovy.lang.GroovyRuntimeException: Conflicting module versions. Module [groovy-swing is loaded in version 3.0.8 and you are trying to load version 3.0.10
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl$DefaultModuleListener.onModule(MetaClassRegistryImpl.java:510)
    at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromProperties(ExtensionModuleScanner.java:87)
    at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromMetaInf(ExtensionModuleScanner.java:81)
    at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanClasspathModulesFrom(ExtensionModuleScanner.java:63)
    at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanClasspathModules(ExtensionModuleScanner.java:54)
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:125)
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:86)
    at groovy.lang.GroovySystem.<clinit>(GroovySystem.java:37)
    ... 74 more

我“反应”以下几行纳入我的gradle依赖性:

implementation "org.codehaus.groovy:groovy-swing:$groovyVersion"

然后测试带有预期的例外:

junit.framework.AssertionFailedError: not implemented

当然,这似乎很奇怪,因为我在我的应用程序中不使用时髦的旋转。

有任何适当的解决问题的方法吗?

跟进:

这就是我的运行配置的样子:

”在此处输入图像说明”

I'm using Eclipse 2022-03 (4.23.0) with Groovy DevTools of 4.5.0.v202203311327-e2203-RELEASE.

My dependencies are as follows:

dependencies {
  implementation "org.codehaus.groovy:groovy:$groovyVersion"
  implementation "org.codehaus.groovy:groovy-json:$groovyVersion"
  implementation "org.codehaus.groovy:groovy-templates:$groovyVersion"
  implementation "org.codehaus.groovy:groovy-dateutil:$groovyVersion"
  implementation "org.codehaus.groovy:groovy-yaml:$groovyVersion"
    
  testImplementation "org.codehaus.groovy:groovy-all:$groovyVersion"
  testImplementation "org.codehaus.groovy:groovy-xml:$groovyVersion"
}

with groovyVersion=3.0.10.

When I run a test like this one:

class GrantASTTransformationTest extends GroovyTestCase {

  @Test
  void 'some test'() {
    fail 'not implemented'
  }
}

the exception is thrown:

java.lang.ExceptionInInitializerError
    at org.codehaus.groovy.reflection.ClassInfo.isValidWeakMetaClass(ClassInfo.java:284)
    at org.codehaus.groovy.reflection.ClassInfo.getMetaClassForClass(ClassInfo.java:254)
    at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:310)
    at io.lootwalk.ast.GrantASTTransformationTest.$getStaticMetaClass(GrantASTTransformationTest.groovy)
    at io.lootwalk.ast.GrantASTTransformationTest.<init>(GrantASTTransformationTest.groovy)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
......
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
Caused by: groovy.lang.GroovyRuntimeException: Conflicting module versions. Module [groovy-swing is loaded in version 3.0.8 and you are trying to load version 3.0.10
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl$DefaultModuleListener.onModule(MetaClassRegistryImpl.java:510)
    at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromProperties(ExtensionModuleScanner.java:87)
    at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromMetaInf(ExtensionModuleScanner.java:81)
    at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanClasspathModulesFrom(ExtensionModuleScanner.java:63)
    at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanClasspathModules(ExtensionModuleScanner.java:54)
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:125)
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:86)
    at groovy.lang.GroovySystem.<clinit>(GroovySystem.java:37)
    ... 74 more

I "reacted" by including the following line into my Gradle-dependencies:

implementation "org.codehaus.groovy:groovy-swing:$groovyVersion"

then the test goes red with an expected exception:

junit.framework.AssertionFailedError: not implemented

That seems weird enough of course, as I'm not using groovy-swing in my app.

Any proper way to fix the issue?

FOLLOW UP:

This is how my Run Configuration looks like:

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文