2012-04-19 95 views
4

我不明白为什么groovy.compile任务在我试图运行编译任务时运行。用ant任务编译Groovy文件

<taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc"> 
    <classpath> 
     <path refid="compile.classpath"/> 
    </classpath> 
</taskdef> 

<target name="groovy.compile"> 
    <groovyc srcdir="src/groovytest" destdir="bin/classes"/> 
</target> 

<target name="compile" description="Compile *.java file" depends="init, groovy.compile"> 
    <javac srcdir="src" destdir="bin/classes" debug="on" deprecation="true"> 
     <classpath refid="compile.classpath"/> 
    </javac> 
</target> 

有没有办法用javac ant任务编译.groovy而不是groovyc ant任务?

+1

做我的回答帮助? – 2012-04-23 10:07:18

+0

是:)谢谢! – emilan 2012-04-23 12:08:57

回答

12

不,你需要使用groovyc任务,但是,你应该能够做使用联合编译器:

<taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc"> 
    <classpath> 
     <path refid="compile.classpath"/> 
    </classpath> 
</taskdef> 

<target name="compile" description="Compile both groovy and java files" depends="init"> 
    <groovyc srcdir="src" destdir="bin/classes"> 
     <javac debug="on" deprecation="true"/> 
    </groovyc> 
</target> 
+0

我发现只有gotcha需要在类路径中包含groovy-all-XX.jar。嵌入的任务继承父代的类路径,srcdir和destdir。 – entomo 2016-12-07 14:14:08