我刚刚安装了Eclipse KEPLER,并且正在尝试将所有项目从github中恢复。这些项目都是gradle项目所以我的程序非常......
一切似乎都很好,除了我不能“Run As,Groovy Script”项目中的脚本。当我尝试时,控制台会喷出......
java.lang.NoClassDefFoundError: org/apache/commons/cli/CommandLineParser
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2521)
at java.lang.Class.getMethod0(Class.java:2764)
at java.lang.Class.getMethod(Class.java:1653)
at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:99)
at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:130)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.cli.CommandLineParser
at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 6 more
。有趣的是,我可以“运行,Java应用程序”没有问题。它绝对是一个Groovy项目,因为它在项目图标中有G。 stacktrace是什么意思,我该如何克服它?
导致我的问题的存储库位于https://github.com/robertkuhar/StackOverflow
我的gradle在eclipse kepler的groovy 1.8.6上是1.11,带有Groovy-Eclipse插件版本:2.8.0.xx-20130703-1600-e43-RELEASE
答案 0 :(得分:2)
在创建" Groovy脚本"时看起来像运行配置,主类设置为org.codehaus.groovy.tools.GroovyStarter
而不是您打算运行的脚本。使用您想要运行的Groovy类/脚本替换它可以解决问题。
<强>更新强>
经过一番挖掘解决问题的方法是:
<强>的build.gradle 强>
eclipse {
project {
natures.add 'org.eclipse.jdt.groovy.core.groovyNature'
}
classpath {
file {
withXml {
Node node = it.asNode()
node.appendNode('classpathentry',[exported:"true",kind:"con",path:"GROOVY_SUPPORT"])
node.appendNode('classpathentry',[exported:"true",kind:"con",path:"GROOVY_DSL_SUPPORT"])
}
}
}
}