antパッケージ学習
1.プロジェクトルートノード
基本プロパティ:name、default、basedir.
name:プロジェクト名(オプション)
default:デフォルトで実行が開始されたtarget.(必須)
basedir:他のすべてのパスを計算するベースパス.basedir propertyで上書きできます.上書きすると、このプロパティは無視されます.属性とbasedir propertyが設定されていない場合はbuildを使用します.xmlの親ディレクトリ.一般basedir=".",buildに設定.xmlが存在するディレクトリ.(オプション)
2.target
Attribute属性Description属性値内容Required
name targetの名前Y
dependsに依存する他のtarget N
description target機能についての簡単な説明N
if本targetを実行するために設定された属性の名前N
unless本targetを実行するために設定されていない属性の名前N
2.1依存関係depands
target Dが実行されると、A、B、C、最後のDが実行される.
複数のtargetが依存していても、1つのtargetは1回しか実行できません.
2.2 if,unless
if属性は、その属性内容を表す変数が設定されている場合、本targetを実行することができる.
unless属性は、その属性内容の変数が設定されていない場合、本targetを実行できることを示します.
疑似コード:
ifまたはunlessプロパティがない場合、targetは常に実行されます.
2.3 descriptionプロパティ
オプションのdescriptionプロパティを使用して、targetに関する1行の説明を提供し、-projecthelpコマンドラインオプションで出力できます.
3. task
よく使われるtask:
3.1ディレクトリmkdirの作成
親ディレクトリが存在しない場合は、ディレクトリを作成します.
3.2ディレクトリdeleteの削除
3.3 copyファイルまたはディレクトリ
3.4 moveファイルまたはディレクトリ
3.5 compile
3.6 jar
4.変数property
カスタム変数に加えて、${os.name}対応オペレーティングシステムの名前やAnt内蔵プロパティなどjavaシステムのプロパティも使用できます.
basedirのbasedirプロパティ
ant.file buildfileの絶対パス
ant.バージョンAntのバージョン
ant.project.name現在実行されているプロジェクトの名前;のname属性で設定
ant.java.バージョンAntで検出されたJVMのバージョン
5. build.xml example
基本プロパティ:name、default、basedir.
name:プロジェクト名(オプション)
default:デフォルトで実行が開始されたtarget.(必須)
basedir:他のすべてのパスを計算するベースパス.basedir propertyで上書きできます.上書きすると、このプロパティは無視されます.属性とbasedir propertyが設定されていない場合はbuildを使用します.xmlの親ディレクトリ.一般basedir=".",buildに設定.xmlが存在するディレクトリ.(オプション)
2.target
Attribute属性Description属性値内容Required
name targetの名前Y
dependsに依存する他のtarget N
description target機能についての簡単な説明N
if本targetを実行するために設定された属性の名前N
unless本targetを実行するために設定されていない属性の名前N
2.1依存関係depands
target Dが実行されると、A、B、C、最後のDが実行される.
複数のtargetが依存していても、1つのtargetは1回しか実行できません.
2.2 if,unless
if属性は、その属性内容を表す変数が設定されている場合、本targetを実行することができる.
unless属性は、その属性内容の変数が設定されていない場合、本targetを実行できることを示します.
疑似コード:
//if="ready" //unless="ready"
if(ready == "ok"){ if(ready == null){
execute target; execute target;
}else { }else {
skip; skip;
} }
ifまたはunlessプロパティがない場合、targetは常に実行されます.
2.3 descriptionプロパティ
オプションのdescriptionプロパティを使用して、targetに関する1行の説明を提供し、-projecthelpコマンドラインオプションで出力できます.
3. task
よく使われるtask:
3.1ディレクトリmkdirの作成
親ディレクトリが存在しない場合は、ディレクトリを作成します.
<mkdir dir="build/classes"/>
<target name="init">
<mkdir dir="${dist.dir}" />
<mkdir dir="${dist.classes.dir}" />
<mkdir dir="${dist.webapps.dir}" />
</target>
3.2ディレクトリdeleteの削除
<delete includeEmptyDirs="true">
<fileset dir="${build}"/>
</delete>
<target name="clean" description="clean up" >
<delete dir="${build}"/>
<delete dir="${dist}"/>
</target>
3.3 copyファイルまたはディレクトリ
<copy file="file" tofile="file.bak"/>
<copy file="config.xml" todir="${dist.classes.dir}"/>
<copy todir="${targetdir}">
<fileset dir="${sourcedir}"/>
</copy>
<target name="copy-resources" depends="clean">
<copy todir="${targetdir}">
<fileset dir="${sourcedir}">
<exclude name="**/**/*.java" />
</fileset>
</copy>
</target>
3.4 moveファイルまたはディレクトリ
<move file="file" tofile="file.bak"/>
<move todir="${targetdir}">
<fileset dir="${sourcedir}"/>
</move>
<move todir="${targetdir}">
<fileset dir="${sourcedir}">
<include name="**/**/*.java" />
</fileset>
</move>
3.5 compile
<path id="libraries">
<fileset dir="${libdir}">
<include name="*.jar" />
</fileset>
</path>
<target name="compile" depends="copy-resources">
<javac srcdir="${sourcedir}"
destdir="${targetdir}"
classpathref="libraries" />
<jar destfile="${jardir}/my.jar" basedir="${targetdir}"/>
</target>
3.6 jar
<jar destfile="${jardir}/my.jar" basedir="${targetdir}"/>
<jar destfile="${dist}/lib/app.jar">
<fileset dir="${build}/classes"
excludes="**/Test.class"
/>
<fileset dir="${src}/resources"/>
</jar>
4.変数property
カスタム変数に加えて、${os.name}対応オペレーティングシステムの名前やAnt内蔵プロパティなどjavaシステムのプロパティも使用できます.
basedir
ant.file buildfileの絶対パス
ant.バージョンAntのバージョン
ant.project.name現在実行されているプロジェクトの名前;
ant.java.バージョンAntで検出されたJVMのバージョン
5. build.xml example
<?xml version="1.0" encoding="UTF-8" ?>
<project default="junitTest" name="myProject" basedir=".">
<property name="sourcedir" value="${basedir}/src" />
<property name="targetdir" value="${basedir}/WEB-INF/classes" />
<property name="libdir" value="${basedir}/WEB-INF/lib" />
<path id="libraries">
<fileset dir="${libdir}">
<include name="*.jar" />
</fileset>
</path>
<target name="junitTest" depends="compile">
<java classname="junit.textui.TestRunner" >
<classpath>
<path refid="libraries" />
<path location="${targetdir}" />
</classpath>
<arg value="can.junit.HibernateDemoTest" />
</java>
</target>
<target name="compile" depends="copy-resources">
<javac srcdir="${sourcedir}"
destdir="${targetdir}"
classpathref="libraries" />
</target>
<target name="copy-resources" depends="clean">
<copy todir="${targetdir}">
<fileset dir="${sourcedir}">
<exclude name="**/**/*.java" />
</fileset>
</copy>
</target>
<target name="clean" >
<delete dir="${targetdir}" />
<mkdir dir="${targetdir}" />
</target>
</project>