Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails 如何在groovy中使用ant制作war文件?_Grails_Groovy_Antbuilder - Fatal编程技术网

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/
    文件夹中的所有文件
  • 从路径中删除Groovy bin或在中使用正确的Groovy版本 你当地的

  • 无论何时调用,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/
    文件夹中的所有文件
  • 从路径中删除Groovy bin或在中使用正确的Groovy版本 你当地的

  • 无论何时调用,Grails都会使用正确的groovy版本编译脚本。我希望这会有所帮助。

    我会说
    CallSite
    不在您的类路径中,但很明显,不是吗?您可以尝试
    “ant”.execute().waitFor())
    如果您只想启动ant并等待进程完成。感谢您的注释CallSite已经在类路径中。我想问题与grails的版本有关。我想说
    CallSite
    不在类路径中,但这很明显不是吗?您可以尝试
    “ant”.execute().waitFor()
    如果您只想启动ant并等待进程完成。感谢您的评论CallSite已经在类路径中。我想问题与grails版本有关。