Grails 如何在groovy中使用ant制作war文件?
我有下面的脚本,目的是使战争文件Grails 如何在groovy中使用ant制作war文件?,grails,groovy,antbuilder,Grails,Groovy,Antbuilder,我有下面的脚本,目的是使战争文件 def ant = new AntBuilder() ant.ant(antfile:'build.xml', dir:APP_ROOT, target:'war') 不幸的是,当groovy尝试运行ant.ant(…行)时,我遇到了以下错误 执行脚本War时出错:[Lorg/codehaus/groovy/runtime/callsite/callsite [exec] java.lang.NoClassDefFoundError: [Lorg/cod
def ant = new AntBuilder()
ant.ant(antfile:'build.xml', dir:APP_ROOT, target:'war')
不幸的是,当groovy尝试运行ant.ant(…行)时,我遇到了以下错误
执行脚本War时出错:[Lorg/codehaus/groovy/runtime/callsite/callsite
[exec] java.lang.NoClassDefFoundError: [Lorg/codehaus/groovy/runtime/callsite/CallSite;
[exec] at java.lang.Class.getDeclaredMethods0(Native Method)
[exec] at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
[exec] at java.lang.Class.getDeclaredMethods(Class.java:1791)
[exec] at org.codehaus.groovy.reflection.CachedClass$1.run(CachedClass.java:134)
[exec] at java.security.AccessController.doPrivileged(Native Method)
[exec] at org.codehaus.groovy.reflection.CachedClass.getMethods(CachedClass.java:131)
我想知道是否有其他方法可以在groovy中使用antbuilder生成war文件?如果grails的groovy依赖项与本地安装的groovy版本不同,则可能会出现问题。当我尝试调用
grails war
以获得依赖于groovy 1.5的grails版本时,我可以重现同样的问题Groovy 1.6已经安装。(顺便说一句,Grails-1.0-RC3依赖于Groovy 1.5.0,并且在Groovy-1.6中引入了CallSite。)当您调用Grails war
时,Grails使用错误的Groovy版本编译其脚本并填充脚本缓存
为了解决这类问题,我所做的是:
~/.grails/YOUR\u grails\u VERSION/scriptCache/
文件夹中的所有文件无论何时调用,Grails都将使用正确的groovy版本编译脚本。我希望这会有所帮助。如果Grails的groovy依赖项与本地安装的groovy版本不同,则可能会出现问题。当我尝试为Grails版本依赖项调用
Grails war
时,我可以重现同样的问题在已经安装Groovy 1.6的情况下,可以使用Groovy 1.5(顺便说一句,Grails-1.0-RC3依赖于Groovy 1.5.0,并且在Groovy-1.6中引入了CallSite)。当调用Grails war
时,Grails会使用错误的Groovy版本编译其脚本并填充脚本缓存
为了解决这类问题,我所做的是:
~/.grails/YOUR\u grails\u VERSION/scriptCache/
文件夹中的所有文件无论何时调用,Grails都会使用正确的groovy版本编译脚本。我希望这会有所帮助。我会说
CallSite
不在您的类路径中,但很明显,不是吗?您可以尝试“ant”.execute().waitFor())
如果您只想启动ant并等待进程完成。感谢您的注释CallSite已经在类路径中。我想问题与grails的版本有关。我想说CallSite
不在类路径中,但这很明显不是吗?您可以尝试“ant”.execute().waitFor()
如果您只想启动ant并等待进程完成。感谢您的评论CallSite已经在类路径中。我想问题与grails版本有关。