我刚升级到......
当我在现有项目上运行grails命令,例如'create-app'或'upgrade'时,我得到GantBuilder的以下NoClassDefFoundError。 (见下面的全部追踪)
来自this forum的类似问题的建议解决方案是缺少gant_groovy1.8-1.9.5.jar。我已经直接将它添加到项目中,也添加到groovy / lib文件夹(并转到STS - >首选项 - > Groovy - >编译器 - >更新所有Groovy类路径容器)但我仍然得到错误。 (当我将gant_groovy1.8-1.9.5.jar添加到groovy / lib时,它是单独的groovy下载,我不确定STS使用哪个groovy / lib文件夹用于内部grails shell命令或如何查看STS groovy类路径)
found org.springframework#spring-test;3.1.0.M1 in default
:: resolution report :: resolve 2068ms :: artifacts dl 119ms
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| test | 74 | 0 | 0 | 0 || 74 | 0 |
---------------------------------------------------------------------
Script threw exception
java.lang.NoClassDefFoundError: org.codehaus.gant.GantBuilder
at org.codehaus.gant.GantBinding.class$(GantBinding.groovy)
at org.codehaus.gant.GantBinding.$get$$class$org$codehaus$gant$GantBuilder(GantBinding.groovy)
at org.codehaus.gant.GantBinding.<init>(GantBinding.groovy:41)
at org.codehaus.groovy.grails.cli.GrailsScriptRunner.callPluginOrGrailsScript(GrailsScriptRunner.java:448)
at org.codehaus.groovy.grails.cli.GrailsScriptRunner.runInteractive(GrailsScriptRunner.java:377)
at org.codehaus.groovy.grails.cli.GrailsScriptRunner.executeCommand(GrailsScriptRunner.java:308)
at org.codehaus.groovy.grails.cli.GrailsScriptRunner.main(GrailsScriptRunner.java:130)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at org.codehaus.groovy.grails.cli.support.GrailsStarter.rootLoader(GrailsStarter.java:234)
at org.codehaus.groovy.grails.cli.support.GrailsStarter.main(GrailsStarter.java:262)
有没有人有任何想法?
答案 0 :(得分:2)
如果我理解的是正确的,Grails不会在你的groovy / lib文件夹中使用jar,而是在Grails Installation文件夹中使用jar。你可能想试试这个:
根据帖子here,您应该转到已安装的Grails文件夹(%GRAILS_HOME%)。在该文件夹中,找到lib文件夹,并指定您拥有的正确版本的gant_groovy.jar。然后将%GRAILS_HOME%/ bin / startGrails.bat编辑为文本并添加以下行:
( set STARTER_CLASSPATH=%GRAILS_HOME%\lib\org.codehaus.groovy\groovy-all\jars\groovy-all-1.8.0.jar;%GRAILS_HOME%\dist\grails-bootstrap-1.4.0.M1.jar;%GRAILS_HOME%\lib\org.codehaus.gant\gant_groovy1.8\jars\gant_groovy1.8-1.9.5.jar
)
请注意,上一行的路径不是很准确(每个分布似乎不同)。您应该在%GRAILS_HOME%文件夹中找到所需的jar并相应地更改路径。