1。概要
ANTは、主にJava環境でのソフトウェア開発のために、ソフトウェアのコンパイル、テスト、展開、その他のステップを自動化するためのその他の手順を接続するツールです。実際のソフトウェア開発では、ANTを使用する場所がたくさんあります。
開発環境:
次のようにコードコードをコピーします。
システム:Windows
JDK:1.6+
IDE:日食
Ant:1.9.1
第二に、利点
Antは、Apache Software FoundationのJakartaディレクトリのサブプロジェクトです。
1。Cross-Platform:Antは純粋なJava言語で書かれているため、良いクロスプラットフォームがあります。
2。単純な操作:ANTは、ビルドされたタスクとオプションのタスクで構成されています。 ANTにはXMLファイルが必要です(ファイルのビルド)。 Antは、ターゲットツリーを呼び出すことでさまざまなタスクを実行できます。各タスクは特定のインターフェイスオブジェクトを実装します。
3.シンプルなメンテナンス、優れた読みやすさ、単純な統合:ANTビルドファイルのため、XML形式のファイルはメンテナンスと書き込みが簡単で、構造は非常に明確です。アリは開発環境に統合できます。 Antのクロスプラットフォームと単純な動作特性であるため、いくつかの開発環境に簡単に統合できます。
第三に、インストールと構成
1。Ant、http://mirror.esocc.com/apache/ant/binaries/apache-nt-nt-9.1-bin.zipをダウンロードしてください
2。ZIP圧縮パッケージを解凍し、配置するディレクトリを配置する圧縮パッケージを配置します。ここにd: /apache-at-1.9.1に配置します。ディレクトリ構造は次のとおりです。
Binは、ANT_HOMEで構成されていないANTプログラムです。
など:プログラムを実行するには、CMDでbat.batを実行します。
すべてのXSL出力テンプレートはettディレクトリに保存されているため、さまざまなタスクの拡張エクスポートXML出力を作成するため、ビルドファイルは時代遅れの警告を取り除きます
LIBディレクトリに保存されているのは、ANTプログラムが依存する必要があるJARパッケージです
マニュアルディレクトリは、アリプログラムのヘルプドキュメントです
3。コンピューターで> [右]プロパティ> [高度なシステム構成] - >環境変数でANTを構成する
新しいシステム変数ANT_HOME = D: /APACHE-AT-1.9.1
このようにして、環境変数は構成されていますが、JDKの環境変数を構成する必要があります。 JDKの環境変数を構成しない場合は、最初にJDK変数を構成してください。 JDK環境構成方法は次のとおりです。
(1)JDKをデフォルトのディレクトリにインストールする:C:/プログラムファイル/Java/JDK1.5.0_05(JDKは公式ダウンロードには行きません)
C:/プログラムファイル/Java/JDK1.5.0
役割:システムJVMにJVMがどこにあるかを伝えます
(2)右 - 私のコンピューターをクリックし、属性、高度な、環境変数を選択します
(3)システム変数バーで新しく構築され、新しいシステム変数ダイアログボックスが表示され、java_homeは変数名、変数値に入力されます:C:/Java/JDK1.5.0_05
(4)確認後、システム変数列に新しい環境変数クラスパスを作成します。
(5)確認後、システム変数列のパスとして変数を使用してオプションを見つけて選択します。
%java_home%/bin
パス変数が見つからない場合は、自分で新しいパス変数を作成してください!
実行するたびにクラスがあるディレクトリに実行し、Javaコマンドを実行したくない場合は、すべてのクラスファイルをUnified Directory組織の下に配置してから、このディレクトリをClassPathに追加できます。
テストコードは次のとおりです。
次のようにコードコードをコピーします。
パブリッククラステスト{
public static void main(string [] args){{
System.out.println( "Hello World!");
}
}
メモ帳の編集者がtest.java(ファイル名と同じ名前)ファイルとして編集された後、コマンドラインウィンドウを開き、
ファイルが配置されているディレクトリへのCD:
次のようにコードコードをコピーします。
Javac test.java //コンパイルコマンド
Javaテスト//プログラムを実行します
出力が次の場合:それ以外の場合は、hello world!
第四、テストアリ
図に示すように、CMDを実行しているDOSウィンドウにアリを入力してください。
これが表示されている場合は、インストールおめでとうございます!それ以外の場合は、失敗し、以前の手順が間違っていることを確認します。上記のコマンドはANTプログラムを実行し、ANTはbuild.xmlでデフォルトでタスクを実行します。
インストールが失敗した場合は、いくつかの状況があるかどうかを確認してください。
1.構成java_homeまたは構成エラーなし、java_home/bin/java.exeが存在する
2.構成ant_hoemまたは構成エラーなし、ant_home/bin/ant.batが存在します
3.環境変数のパス変数を確認してください。木材と構成があります。
%path%= ...多分 - 他のエントリ...;%ant_home%/bin;
5。アリの操作
アリがコマンドを実行すると、時々パークジャーライブラリがあることがあります。これらのライブラリは各ANTプロジェクトに存在するため、現時点ではこのJARパッケージをグローバルライブラリとしてANT_HOME/LIBディレクトリに入れることができます。
オリジナルのANTプログラムを「汚染」したくない場合は、現在のWindowsユーザーディレクトリにパッケージを入れることができます。上記のディレクトリがなければ、手動で確立できます。
LIBを一時的に追加したいだけで、現在のANTエンジニアリングにLIBを追加したくない場合。 ANTプログラムを実行するときに、依存するLIBパラメーターを指定できます。
同時に、現在のビルドプロジェクトのClassPathディレクトリのJARパッケージにプロジェクトを追加することもできます。
6。Antコマンド
文法要素の説明は次のとおりです。
-ヘルプ
Antコマンドのヘルプ情報とそのオプションを表示する
-ProjectHelp
ディスプレイには、建設的なファイルにすべてのユーザーが書いたヘルプドキュメントが含まれています。つまり、各<ターゲット>の説明属性のテキスト、および<説明>要素に含まれるテキスト。説明属性のターゲットはメインターゲット(メインターゲット)であり、この属性のないターゲットはサブターゲットとしてリストされています。
- バージョン
バージョン情報を表示してから終了する必要があります。
-静かな
抑制は、構築ファイルのエコータスクによって生成されたニュースのほとんどではありません。
-verbose
建設プロセス中に各操作の詳細なメッセージを表示します。このオプションは、-debugオプションでのみ選択できます。
-デバッグ
アリとタスクの開発者は、メッセージをデバッグするためにすでにマークされたメッセージを持っています。このオプションは、verboseを使用してそのいずれかを選択できます。
-Emacs
ログメッセージをフォーマットして、EMACSのシェルモードで簡単に分析できます。
-logfileファイル名
指定されたファイルにログ出力をリセットします。
-logger className
アリのログを処理するクラスを指定します。指定されたクラスは、org.apache.tools.ant.buildloggerインターフェイスを実装する必要があります。
-Listener className
監視クラスを宣言し、リスナーリストに増やします。このオプションは、ANTとIDEまたは他のJavaプログラムが統合されている場合に非常に便利です。第6章を読んで、監督者に関する詳細情報を理解できます。指定されたリスニングクラスは、アリを処理できる構造メッセージの処理として記述する必要があります。
-buildfileファイル名
処理する必要がある建設ファイルを指定します。デフォルトの構造ファイルはbuild.xmlです。
-dproperty = value
コマンドラインに特徴的な名前-Valueペアを定義します。
- ファイル名を見つけます
処理する必要のある構造ファイルを指定します。ビルドファイルオプションとは異なり、指定されたファイルが現在のディレクトリにない場合、-findは親ディレクトリで検索する必要があります。この検索は、ファイルシステムのルートまで、およびファイルが見つからない場合、構造に失敗するまで、その祖先ディレクトリで引き続き実行されます。
-tuoproxy JDK1.5以上はエージェント設定を使用できます
-nouserlibは、実行中にユーザーlibでJARパッケージを使用しません
-niceデザインメインスレッドの優先順位
-logfileは、指定されたログログを使用します
-Noinputはインタラクティブな入力を許可しません
-keep -golding、-k実行はすべての目標に依存しません
-propertyfil
次のようにコードコードをコピーします。
<プロジェクトdefault = "all">
<プロパティ名= "pro_a" value = "a value" />
<プロパティ名= "pro_b" value = "b値" />
<path id = "rt.phth">
<pathelement local = "$ {java.home} /jre/lib/rt.jar"/>
</path>
<ターゲット名= "all">
<javac srcdir = "。">
<classpath refid = "a.path" />
</javac>
</ターゲット>
</project>
知らせ:
●すべての建設的なファイルには、<project>要素と少なくとも1つの<ターゲット>要素が必要です。
●<project>要素のデフォルト属性には、必ずしもデフォルト値が必要ではありません。
●建設ファイルはbuild.xmlという名前を付ける必要はありません。ただし、build.xmlは、アリが検索したいデフォルトのファイル名です。
●各構造ファイルには、1つの<project>要素のみがあります。
次のように、CMDウィンドウに現在のbuild.xmlディレクトリコピーを入力してください。
アリ
現在のディレクトリでbuild.xmlでantを実行して、デフォルトのターゲットを実行します。
次のようにコードコードをコピーします。
Ant -BuildFile Build -Test.xml
現在のディレクトリのbuild-test.xmlでantを実行して、デフォルトのターゲットを実行します。
次のようにコードコードをコピーします。
Ant -BuildFile Build -Test.xmlクリーン
現在のディレクトリでbuild-test.xmlでantを実行し、Cleanというターゲットを実行します。
次のようにコードコードをコピーします。
ANT -BUILDFILE BUILD -TEST.XML -DBUILD = BUIRD/CLASSESクリーン
BuildTest.xmlでANTを現在のディレクトリで実行し、Cleanというターゲットを実行し、ビルド属性の値をビルド/クラスに設定します。
7。Antスクリプト:ノード、要素、属性、コマンド命令を使用する
1。プロジェクトノード要素
プロジェクト要素は、ANTコンポーネントファイルのルート要素です。各プロジェクト要素では、複数のターゲット要素を含めることができます。次の読者に、プロジェクト要素の属性を表示します。
●名前属性:プロジェクト要素を指定するための名前。
●デフォルト属性:プロジェクトがデフォルトで実行されたときのdeargetのターゲット実行の名前。
●Beadyir属性:ベースパスの位置を指定するために使用されます。この属性が指定されていない場合、ANTコンポーネントファイルの添付ファイルはベンチマークディレクトリとして使用されます。
次のようにコードコードをコピーします。
<?xmlバージョン= "1.0"?>
<プロジェクト名= "ant-project" default = "print-dir" bases = "。">
<ターゲット名= "print-dir">
<echo message = "base dia is:$ {beadir}" />
</ターゲット>
</project>
上記の例からは、デフォルトのプロパティの値がここではPrint-Dirであること、つまりANTコマンドが実行されている場合、ターゲットが示されていない場合、デフォルトのターゲット(Print-DIR)が実行されます。さらに、beasedir属性の値は「」を意味します。
2。ターゲットノード要素
ターゲットは、ANTの基本的な実行ユニットまたはタスクであり、1つ以上の特定の単位/タスクを含めることができます。複数のターゲットには相互依存性があります。次の属性があります。
●名前属性:ターゲット要素の名前を指定します。これは、プロジェクト要素で一意です。ターゲット要素の名前を指定することにより、ターゲットを指定できます。
●属性の依存:ターゲット間の依存関係を記述するために使用されます。 ANTは、依存プロパティのターゲットの順序に従って各ターゲットを実行し、最初に依存ターゲットが実行されます。
●属性:指定された属性が存在しないことを確認するために使用されます。
●属性:この属性の関数は、指定された属性が存在しないかどうかを確認するために使用されます。
●説明属性:この属性は、ターゲット関数の簡単な説明と説明です。
例:
次のようにコードコードをコピーします。
<?xmlバージョン= "1.0"?>
<プロジェクト名= "ant-timeget" default = "print">
<ターゲット名= "バージョン" if = "ant.java.version">
<echo message = "javaバージョン:$ {ant.java.version}" />
</ターゲット>
<ターゲット名= "print"依存= "バージョン" = "docs">
<説明>
a例によっては!
</description>
<echo message = "base dia is:$ {beadir}" />
</ターゲット>
</project>
次の結果から、ターゲットのターゲットがターゲットタスクとして依存していることがわかります。 1.6 "、バージョンが実行された後、ドキュメントが存在しないために実行され、属性が存在がない場合に属性がターゲットに入るために実行されます。印刷は実行、出力情報を実行できることがわかります。 IS:D:D:/workspace/antexample/build "。
3。プロパティ属性ノード要素
プロパティ要素は、パラメーターまたはパラメーターの定義と見なすことができます。 build.propertiesファイルなど、外部のファイルを導入する場合は、次のコンテンツで引用できます。
<プロパティfile = "build.properties"/>/>
プロパティ要素は、タスクの属性値として使用できます。タスクでは、属性名を$ {属性名}の間に配置し、タスク属性値の位置に配置することで達成されます。
ANTは、取得できるシステムプロパティのリストを提供します。同時に、Antは次のように、独自の構築された属性の一部も提供します。
Basedir:プロジェクトベースリストの絶対パス。
ant.file:buildfileの絶対パス。
Ant.Version:Antバージョン情報、この記事は1.8.1です。
ant.Project.Name:現在指定されたプロジェクトの名前、つまり前述のプロジェクトの名前のプロパティ値。
ant.java.version:JDKバージョンはAntによって検出されました。この記事は1.6です。
たとえば、次のように:
次のようにコードコードをコピーします。
<プロジェクト名= "ant-project" default = "example">
<プロパティ名= "name" value = "jojo" />
<プロパティ名= "age" value = "25" />
<ターゲット名= "example">
<echo message = "name:$ {name}、age:$ {age}" />
</ターゲット>
</project>
上記の例では、ユーザーは名前と年齢という名前の2つの属性を設定します。
4。コマンドをコピーします
コピーは、主にファイルとディレクトリのコピーに使用されます。たとえば、次のように:
●単一のファイルをコピーします。
次のようにコードコードをコピーします。
<file = "old.txt" tofile = "new.txt"/>
●ファイルディレクトリをコピーします。
次のようにコードコードをコピーします。
<copy today = "../ dest_dir">
<fileset dir = "src_dir"/>
</copy>
●ファイルを別のディレクトリにコピーします。
次のようにコードコードをコピーします。
<file = "src.txt" dodir = "c:/base"/>
5.コマンドを削除します
次のように、ファイルまたはディレクトリを削除します。
●ファイルを削除します。
次のようにコードコードをコピーします。
<delete file = "/res/images/cat.jpg"/>
●ディレクトリを削除します。
次のようにコードコードをコピーします。
<delete dir = "/res/image"/>
●すべてのJARファイルまたは空のディレクトリを削除します。
次のようにコードコードをコピーします。
<delete includementydirs = "true">
<filesset dir = "。" **/*。jar "/>
</delete>
6。MKDIRコマンド
ディレクトリを作成します。
次のようにコードコードをコピーします。
<mkdir dir = "/home/philander/build/classes"/>/>
7。コマンドを移動します
次のように、ファイルまたはディレクトリを移動します。
●単一のファイルを移動します。
次のようにコードコードをコピーします。
<file = "source" tofile = "destfile"/>/>を移動します
●単一のファイルを別のディレクトリに移動します。
次のようにコードコードをコピーします。
<file = "source" todir = "moveir"/>/>を移動します
●ディレクトリを別のディレクトリに移動します。
次のようにコードコードをコピーします。
<move today = "newdir">
<fileset dir = "olddir"/>
</move>
8。エコーコマンド
このタスクの役割は、ログまたはモニターのレベルに基づいて情報を出力することです。メッセージ、ファイル、アペンド、レベルの4つの属性が含まれています。
<echo message = "ant message" file = "/logs/ant.log" append = "true">
9。JARタグノード要素
このタグは、JARファイルを生成するために使用されます。これは次のとおりです。
●DestFileはJARファイルの名前を示します。
●Beadirは、アーカイブのファイル名を表します。
●含まれているのは、アーカイブではないファイルモードを示します。
●Exchudは、除外ファイルモードを表します。
●圧縮は圧縮されているかどうかを示します。
例:
次のようにコードコードをコピーします。
<jar destfile = "$ {webroot}/$ {ash_jar}" level = "9" compression = "true" encoding = "utf-8" bedir = "$ {dest}">
<マニフェスト>
<属性name = "実装Value ="バージョン:2.2 "/>
</manifest>
</jar>
上記のメインフェストは、JARパッケージのMANIFEST.MFのファイルコンテンツのコンテンツです。
同じパッケージング操作は、戦争、TGZ、および減圧操作UZIPです
次のようにコードコードをコピーします。
<! - zip->を作成します
<zip baseness = "$ {beadir}/class" zipfile = "temp/output.zip"/>/>
<! - tgz->を作成します
<gzip src = "classses/**/*。class" zipfile = "output.class.gz"/>
<!
<unzip src = "output.class.gz" dest = "extractdir"/>
<! - 戦争パッケージを作成 - >
<war destfile = "$ {webroot} /ash.war" beadir = "$ {beadir} /web" webxml = "$ {beadir} /web/web.xml" >>
<exclude name = "web-inf/classs/**"/>
<除外name = "web-inf/lib/**"/>
<除外name = "web-inf/work/_jsp/**"/>
<lib dir = "$ {lib.dir}" include = "**/*。jar、**/*。だから、**/*。dll">
<除外name = "$ {webroot}/$ {helloworld_jar}"/>
</lib>
<lib file = "$ {webroot}/$ {helloword_jar}"/>
<classes dir = "$ {dest}" include = "**/*。xml、**/*。
</war>
10。Javacタグノード要素
ラベルは、Javaファイルの1つまたはグループをコンパイルするために使用され、その属性は次のとおりです。
●SRCDIRは、ソースプログラムのディレクトリを表します。
●DestDirは、クラスファイルの出力ディレクトリを表します。
●コンパイルされたファイルのパターンを表します。
●除外は、除外されるファイルのパターンを表します。
●ClassPathは、使用されるクラスパスを表します。
●デバッグはデバッグ情報を表します。
●最適化は、最適化を使用するかどうかを示します。
●Verboseは詳細な出力情報を表します。
●FileOnerrorは、エラーが発生したときに自動的に停止したと述べました。
コピーコードの例は次のとおりです。
<javac srcdir = "$ {src}" destdir = "$ {dest}"/>
<! - JVMメモリを設定します
<javac srcdir = "src" fork = "true"/>
<javac srcdir = "src" fork = "true" execupable = "d:/sdk141/bin/javac"
MemoryMaximumsize = "128m"/>
- >
11。Javaタグノード要素
このラベルは、コンパイルされた.classファイルを実行するために使用され、その属性は次のとおりです。
●classNameは実行の名前を表します。
●JARとは、このクラスを含むJARファイルの名前を意味します。
●ClassPathは、使用されるクラスパスを表現しました。
●フォークとは、このクラスを新しい仮想マシンで実行することを意味します。
●RailonErrorは、エラーが発生したときに自動的に停止したと述べました。
●出力は出力ファイルを示します。
●APENDは追加を示したり、デフォルトファイルをカバーしたりします。
コピーコードの例は次のとおりです。
<java classname = "com.hoo.test.helloworm" classpath = "$ {hello_jar}"/>
12。ARGデータパラメーター要素
ANTが呼び出すプログラムは、ネストされた<RG>要素で受け入れられ、それぞれのプロセスの指定されたパラメーターを指定できるApply、Exec、およびJavaタスクなど、<rg>要素を介してコマンドラインパラメーターを渡すことができます。 。 <Arg>のすべての属性は次のとおりです。
●値はコマンドパラメーターです。パラメーターにスペースがあるが、単一の値として使用する場合は、この属性を使用します。
●ファイルはパラメーターのファイル名を表します。ファイルの構築では、このファイルの名前は現在の作業ディレクトリに関連しています。
●線は、スペースで区切られた空間の複数のパラメーターを示します。
●パス、単一のコマンドライン変数として使用されるパスのような文字列を表現します。
●PATHREF参照パス(パス要素ノード定義パスを使用)ID
●プレフィックスプレフィックス●接尾辞接尾辞
コピーコードの例は次のとおりです。
<arg value = "-la -a"/>
スペースを含む単一のコマンドライン変数です。
次のようにコードコードをコピーします。
<arg line = "-la -a"/>
これは、2つのスペースで区切られたコマンドライン変数です。
次のようにコードコードをコピーします。
<arg path = "/dir;/dir2:/dir3"/>
これはコマンドライン変数であり、その値はDOSシステム上の/dir2;/dir3です。
13。エリコンメントタイプ
ANTによって呼び出されるファイルと呼ばれる外部コマンドまたはプログラムは、<Env>要素が実行されているシステムコマンドにどの環境変数を渡すべきかを定式化します。
●ファイルは、周囲値のファイル名を表します。このファイルの名前は、変換される絶対パスです。
●パスは環境変数のパスを表します。 Antはそれを現地契約に変換します。
●値は、環境変数の直接変数を表します。
●キーとは、環境変数名を意味します。
1つしか取ることができないファイルパスまたは値に注意してください。
14。ファイルリストファイルコレクションリスト
FileListは、ファイルリストタイプに含まれるファイルをサポートするデータ型です。すべての属性があります。
●dirは、絶対ファイル名を計算するためのディレクトリです。
●ファイルは、コンマで区切られたファイルのリストです。
●refidは、特定の場所で定義されている<filelist>への参照です。
この場合に指定されていない限り、dirおよびファイルを使用することを許可されていない限り、dirおよびファイルが必要であることに注意してください。
コピーコードの例は次のとおりです。
<filelist id = "docfiles" dir = "$ {doc.src}" files = "foo.xml、bar.xml"/>
ファイルコレクション$ {doc.src} /foo.xmlおよび$ {doc.src} /bar.xml。
<fileList id = "docfiles" dir = "$ {doc.src}" files = "foo.xml bar.xml"/>
<filelist refid = "docfiles"/>
<filelist id = "docfiles" dir = "$ {doc.src}">
<ファイルname = "foo.xml"/>
<ファイルname = "bar.xml"/>
</filelist>
15。ファイルセットファイルタイプ
ファイルセットデータ型はファイルのセットを定義し、通常は<fileset>要素として表されます。ただし、多くのANTタスクがHidden Filessetを構築しており、すべてのファイルセット属性とネストされた要素をサポートすることを示しています。以下は、ファイルセットの属性のリストです。
●dirは、ファイルセットのベースディレクトリを表します。
●ケースの場合の値がfalseの場合、ファイル名と一致する場合、ファイルセットはケースと区別されず、デフォルト値は真です。
●DefaultExcludesは、デフォルトの除外モードを使用するかどうかを判断するために使用され、デフォルトはTRUEです。
●除外は、コンマ分離で送信する必要があるファイルパターンリストです。
●excrudesFileは、行ごとの除外モードを含むファイルのファイル名を表します。
●含まれるものは、コンマで区切られ、含める必要があるファイルパターンリストが分離されています。
●Fileを含むことは、各行がモードを含むファイル名を含むことを意味します。
コピーコードの例は次のとおりです。
<filesset id = "lib.runtime" dir = "$ {lib.path}/runtime">
<include name = "**/*。Jar"/>
<include name = "**/*。so"/>
<include name = "**/*。dll"/>
</fileset>
<filesset id = "lib.container" dir = "$ {lib.path}/container">
<include name = "**/*。Jar"/>
</fileset>
<filesset id = "lib.extras" dir = "$ {lib.path}">
<include name = "test/**/*。jar"/>
</fileset>
16。パターンセットタイプ
ファイルセットはファイルのパケットであり、パターンは密接に関連する概念です。
<patternSet> 4つの属性をサポートします。
パターンセットでは、次のネストされた要素も許可します。
コピーコードの例は次のとおりです。
<! - 白黒リスト - >
<patternSet id = "non.test.sources">
<include name = "**/*。Java"/>
<! - ファイル名には、test->の除外が含まれています
<除外name = "**/*test*"/>
</patternSet>
<patternset id = "sources">
<include name = "std/**/*。java"/>
<! - 紹介するための推進力があるという条件を判断する - >
<include name = "prof/**/*。java" if = "professional"/>/>
<除外name = "**/*test*"/>
</patternSet>
<! - ファイルのセット - >
<PatternSetを含むFile = "Some-File"/>
<PatternSet>
<includefile name = "ome-free"/>
<patternset/>
<PatternSet>
<includefile name = "ome-free"/>
<includefile name = "$ {some-meher-file}" if = "some-mean-free"/>
<patternset/>
17。フィルターセットタイプ
フィルターセットは、ファイルが移動するときにファイルのテキストを置き換えるフィルターのセットを定義します。
主な属性は次のとおりです。
●Begintokenは、ネストされたフィルターによって検索されたマークを示します。これは、それを識別する文字列です。
●Endtokenは、ネストされたフィルターで検索されたマークがその端を識別する文字列であることを示します。
●IDはフィルターの唯一のロゴです。
●refidは、構築ファイルのどこかにフィルターへの参照です。
コピーコードの例は次のとおりです。
<! - @date@は、ターゲットファイルのversion.txtファイルコンテンツの今日の現在の日付に@date@に置き換えられます。
<copy file = "$ {build.dir} /version.txt" tofile = "$ {dist.dir} /version.txt">
<filterset>
<filter token = "date" value = "$ {today}"/>
</filterset>
</copy>
<! - カスタム変数形式 - >
<copy file = "$ {build.dir} /version.txt" tofile = "$ {dist.dir} /version.txt">
<! - version.txtの%位置から*位置の最後まで検索し、置換コンテンツの@date@を今日の現在の日付の値に置き換えます - >
<フィルターセットBEGINTOKEN = "%" endtoken = "*">
<filter token = "date" value = "$ {today}"/>
</filterset>
</copy>
<! - 外部フィルター定義ファイルを使用 - >
<copy todany = "$ {dist.dir}/docs">
<fileset dir = "$ {build.dir}/docs">
<include name = "**/*。html">
</fileset>
<フィルターセットBEGINTOKEN = "%" endtoken = "*">
<! - ファイルの属性と値は外部から導入され、来るべきの属性と値が導入されます
<filtersfile file = "$ {user.dir} /dist.properties" />
</filterset>
</copy>
<! - 参照方法を使用し、フィルターセット>を繰り返し使用します
<フィルターセットid = "myfilterset" begintoken = "%" endtoken = "*">
<filter token = "date" value = "$ {today}"/>
</filterset>
<copy file = "$ {build.dir} /version.txt" tofile = "$ {dist.dir} /version.txt">
<フィルターセットrefid = "myfilterset"/>
</copy>
18。パスタイプ
パス要素はクラスを表すために使用されますが、他のパスを表すためにも使用できます。いくつかの属性として使用される場合、道路聖書のさまざまなスコアまたはコロンが分離されます。構築するとき、このセパレーターは現在のプラットフォーム上のすべてのパスセパレーターを置き換え、その属性は次のとおりです。
●場所はファイルまたはディレクトリを表します。 Antはこれを内部的に絶対的なパスに拡張します。
●refidは、現在の建設ファイルで定義されているパスへの参照です。
●パスはファイルまたはパスリストを示します。
コピーコードの例は次のとおりです。
<path id = "buildpath">
<fileset refid = "lib.runtime"/>
<fileset refid = "lib.container"/>
<fileset refid = "lib.extras"/>
</path>
<path id = "src.paths">
<filesset id = "srcs" dir = "。">
<include name = "src/**/*。java"/>
</fileset>
</path>
8。梱包およびランニングエンジニアリングのコンパイルのコードコードは次のとおりです。
<?xmlバージョン= "1.0" encoding = "utf-8"?>
<! - 現在のプロジェクトの名前はデフォルトのタスクです。
<プロジェクト名= "helloworld" default = "run" basedir = "。">
<! - プロパティは、プログラムの単純な変数に似ています>
<Propoperty name = "src" value = "src"/>
<プロパティ名= "dest" value = "class"/>
<プロパティ名= "hello_jar" value = "helloworld.jar"/>
<! -
ターゲットはイベント、タスク、名前は現在のものの名前です。
- >
<! - 初期化 - >
<ターゲット名= "init">
<! - クラスディレクトリ - >
<mkdir dir = "$ {dest}"/>
<mkdir dir = "temp"/>
<mkdir dir = "temp2"/>
</ターゲット>
<! - コンピレーション - >
<ターゲット名= "コンパイル"依存= "init">
<javac srcdir = "$ {src}" destdir = "$ {dest}"/>
<! - JVMメモリを設定します
<javac srcdir = "src" fork = "true"/>
<javac srcdir = "src" fork = "true" execupable = "d:/sdk141/bin/javac"
MemoryMaximumsize = "128m"/>
- >
</ターゲット>
<! - <<建->
<ターゲットname = "build"依存= "compile">
<! -
<jar jarfile = "$ {hello_jar}" beadir = "$ {dest}"/>
package.jarファイルの名前を作成します
<jar destfile = "package.jar" basedir = "classes"/>
- >
<jar destfile = "$ {hello_jar}" beadir = "classses">
<! - JARパッケージのメインファイルにコンテンツを追加 - >
<マニフェスト>
<属性name = "built-by" value = "$ {user.name}"/>
<属性name = "main-class" value = "package.main"/>/>
</manifest>
</jar>
<! - JARファイルdirectory "コピー" - >をコピーします
<copy file = "$ {hello_jar}" tofile = "$ {dest} /temp.jar" />
<todir = "test">をコピーします
<! - defaultExcludes = "" - >
<filesset dir = "src">
<include name = "**/*。Java"/>
</fileset>
</copy>
<コピーTODIR = "TEMP2">
<filesset dir = "src">
<and>
<text = "main"/>を含む
<size value = "1" when = "more"/>
</and>
</fileset>
</copy>
<! - モバイルJARファイル - >
<file = "$ {dest} /temp.jar" tofile = "temp/move-temp.jar"/>
<! - zip->を作成します
<zip baseness = "$ {beadir}/class" zipfile = "temp/output.zip"/>/>
<! - tgz->を作成します
<gzip src = "classses/**/*。class" zipfile = "output.class.gz"/>
<!
<unzip src = "output.class.gz" dest = "extractdir"/>
< - input.txtコンテンツのコンテンツの古いものを新しい
<file = "input.txt" token = "old" value = "new"/>
- >
</ターゲット>
< - - >>
<ターゲット名= "run"依存= "build">
<java classname = "com.hoo.test.helloworm" classpath = "$ {hello_jar}"/>
</ターゲット>
<! - clear->
<ターゲットname = "clear">
<! - 生成されたファイルを削除しました - >
<delete dir = "$ {dest}"/>
<delete file = "$ {hello_jar}"/>
</ターゲット>
<tstamp>
<formatプロパティ= "offset_time"
pattern = "HH:mm:ss"
offset = "10" unit = "minute"/>
</tstamp>
<! - 再起動 - >
<ターゲット名= "raun"依存= "clean、run">
<echo message = "### $ {tstamp}#$ {today}#$ {dstamp} ###"/>
<Likeing Target = "Clean"/>
<Likeing target = "run"/>
</ターゲット>
</project>
基本的に、あなたが興味を持っていることがまだたくさんあると言うことがあります。アリはそれを使用してドキュメントコンソールでコマンドラインを入力しますが、antはコマンドラインをXMLに変換するスクリプト情報です。特定の状況では、効率と繰り返しの作業が改善されました。