Ant是不是一種計算機語言。這是一種矩陣依賴語言。
區別很微妙:編程語言更加靈活,但您必須告訴它每一步和每一步。矩陣依賴語言計算出執行順序。
它可能是一個微妙但重要的區別。在標準的Ant中,像while循環,for循環和if/then語句這樣的基本控制結構缺失。
聽起來你想用標準的計算機語言來做什麼會容易得多。也許Python,Perl,甚至是一個shell腳本。
在命令行鍵入「ant -help」,你會發現沒有真正的方法可以像使用常規編程語言一樣將參數傳遞到Ant中。相反,你可以在命令行上性能螞蟻就可以使用:
$ant -Ddeploy.classfile=src/classes/myClass.class deploy
的-D允許您設置一個屬性調用部署任務時。然後,您可以使用deploy.classfile屬性在您的目標中使用它在Ant 任務中。我會粗略估計,即使是這樣一個簡單的構建。xml文件需要大約20到30行。特別是你會給它一個類文件或一個目錄,你必須以不同的方式處理它們,這需要第二個目標。不僅如此,而且很難理解工作流程。
這是一個想法,爲什麼不在<javac>
任務中使用destdir
目標,首先在deploy
目錄中創建所需的*.class
文件。 Ant的主要做法之一是將您構建的文件從存儲庫中的文件中分離出來。它使清理變得非常容易。另外,<javac>
任務知道不要爲尚未更改的源文件重建類文件。
<target name="compile"
description="Compile your source files">
<property name="main.destdir" value="${basedir}/deploy/classes"/>
<property name="main.srcdir" value="${basedir}/src"/>
<path id="main.classpath">
<fileset dir="${basedir}/lib/>
</path>
<javac srcdir="${main.srcdir}"
destdir="${main.destdir}"
classpathref="main.classpath"/>
</target>
現在,您不必將文件從源目錄複製到您的部署目錄。更好的是,<javac>
不會重新編譯未更改的源文件。讓Ant完成它所設計的任務,以及其他任何事情,使用一種好的腳本語言。