gpt4 book ai didi

groovy - Groovy ShortTypeHandling ClassNotFoundException

转载 作者:行者123 更新时间:2023-12-03 08:20:11 26 4
gpt4 key购买 nike

我有一个使用groovy 2.2.1版的groovy应用程序。我的常规应用程序以前运行良好,但最近开始抛出此异常:

    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at com.app.Main.main(Main.groovy:83)Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.runtime.typehandling.ShortTypeHandling
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)

直到Groovy 2.3.0才引入ShortTypeHandling类。如何在运行2.2.1版的groovy应用中引用它?我可以通过在pom中将groovy-all-2.2.1.jar替换为groovy-all-2.3.0.jar来解决此问题,但这不是根本原因。

最佳答案

在groovy-all-2.3.0.jar中引入了ShortTypeHandling,因此快速解决方案是用groovy-all-2.3.0.jar替换旧的groovy-all-x.x.x.jar。这解决了运行时ShorTypeHandling ClassNotFoundException,但通过在应用程序中引入新的groovy-all.jar依赖关系也产生了新问题。

真正的问题是如何通过maven调用groovy编译器。因为我介绍了需要groovy 2.0的spock,所以我需要更新groovy-eclipse-compiler依赖项的maven条目。这是用于groovy 2.x的更新的maven条目:

        <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<compilerId>groovy-eclipse-compiler</compilerId>
<!-- Java version -->
<source>1.7</source>
<target>1.7</target>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-eclipse-compiler</artifactId>
<version>2.8.0-01</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-eclipse-batch</artifactId>
<!-- Groovy version -->
<version>2.1.8-01</version>
</dependency>
</dependencies>
</plugin>

有了这个适当的位置之后,我就可以像原来那样在正常工作/经过充分测试的应用程序中保留对所有常规的依赖:
    <dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<!-- If possible, its better if this matches 2.1.8 in the plugin definition -->
<!-- but 2.2.1 worked fine here and allowed me to keep the original pom definition -->
<version>2.2.1</version>
</dependency>

应用程序运行时不再引用ShortTypeHandling类,并且一切都像以前一样工作。

关于groovy - Groovy ShortTypeHandling ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23846709/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com