Antはコンピューター言語ではありません。これはマトリックス依存言語です。
違いは微妙です。プログラミング言語ははるかに柔軟性がありますが、実行するすべてのステップを指示する必要があります。マトリックス依存言語は、実行の順序を理解します。
微妙ですが、重要な違いです。標準のAntでは、whileループ、forループ、if/thenステートメントなどの基本的な制御構造が欠落しています。
あなたがやりたいことは、標準的なコンピュータ言語ではるかに簡単になるように思えます。たぶんPython、Perl、あるいはシェルスクリプトですら。
コマンドラインで「ant-help」と入力すると、通常のプログラミング言語のようにパラメータをAntに渡す実際の方法がないことがわかります。代わりに、Antが使用できるコマンドラインでプロパティを設定できます。
$ant -Ddeploy.classfile=src/classes/myClass.class deploy
-Dを使用すると、デプロイタスクを呼び出すときにプロパティを設定できます。次に、deploy.classfileプロパティを使用して、Antで使用できます。あなたのタスク目標。このような単純なbuild.xmlファイルでも約20〜30行が必要になると概算します。これは、クラスファイルまたはディレクトリを提供する場合に特に当てはまり、2番目のターゲットを必要とする別の方法でそれらを処理する必要があります。それだけでなく、ワークフローを理解するのは難しいでしょう。
ここにアイデアがあります。そもそも、タスクでdestdir
ターゲットを使用して、ディレクトリに必要なファイルを作成してみませんか。Antの主な方法の1つは、作成したファイルをリポジトリ内のファイルから分離することです。クリーンアップがはるかに簡単になります。さらに、タスクは、変更されていないソースファイルのクラスファイルを再構築しないことを認識しています。<javac>
*.class
deploy
<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に設計された仕事をさせ、他のすべてのことには、優れたスクリプト言語を使用してください。