2012-04-19 131 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