Groovy编译失败,因为方法代码太大

x6h2sr28  于 2022-11-01  发布在  其他
关注(0)|答案(1)|浏览(401)

我有两个代码库合并成一个,我做了这个练习。但是,编译失败,下面的错误。我已经通过了一些链接,似乎没有具体的解决方案可用。

**我的问题是:**我如何在没有任何信息的情况下识别哪个Groovy类将此错误作为其一般错误抛出。我有数千个类,其中几个我已经纠正,但问题仍然发生。我喜欢迷失在其中并寻求帮助。

错误:

java.lang.RuntimeException: Method code too large!
    at groovyjarjarasm.asm.MethodWriter.a(Unknown Source)
    at groovyjarjarasm.asm.ClassWriter.toByteArray(Unknown Source)
    at org.codehaus.groovy.control.CompilationUnit$16.call(CompilationUnit.java:815)
    at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1055)
    at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:591)
    at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:569)
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:546)
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:525)
    at org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:122)
    at org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:47)
    at org.gradle.api.internal.tasks.compile.daemon.CompilerDaemonServer.execute(CompilerDaemonServer.java:53)
    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.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
    at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    at org.gradle.messaging.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:360)
    at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)

1 error

 FAILED

一些链接,我已经经历过,但它没有帮助Method code too large in Groovy & Grails?
根据Oracle文档,方法大小不应超过64 K,我在Ubuntu中运行此代码,尝试了所有可能的类,这些类大于64 K,并开始逐一更正,但我得到了100多个类,每个类都很无聊,也很繁忙。
是否有任何工具或库可以让我知道哪个类有问题。

**注:**我尝试通过声纳/codenarc/三叶草进行扫描,但没有任何结果。

bz4sfanl

bz4sfanl1#

简单的try/catch会有帮助。也可以在调用流中执行println,以查看流在调用中的何处停止(即过滤器-〉拦截器-〉控制器-〉拦截器)

相关问题