#topicpath ---- **AntのTIPS集 [#zfe6185a] #contents ***AntをJavaコマンドから実行する [#se1d11d5] Antのカスタムクラスをブレークポイントなどを使ってDebugしたくて、EclipseのJavaアプリ実行で実行できる方法を探してましたが、見つかりました。 -Javaの実行で、メインクラス名を org.apache.tools.ant.Main にする -実行のプリファレンスページでクラスパスにant-launcher.jarをとおす -プログラムの引数にターゲット名を指定する でいけますね。ブレークポイントが使えるのは非常に便利! http://www.ingrid.org/jajakarta/ant/ant-1.2/docs-ja/index.html ***プロパティを上書き [#b9568c46] build.xmlには外からプロパティのValueを渡すことができます。たとえば $ ant -Dproject.name=newProjectname とすれば、build.xml内の${project.name}を「newProjectname」という値にすることができます。build.xml内でpropertiesファイルで値を設定したりしていても、引数で渡す値の方が優先されるようです。ようするにプロパティを引数で上書き可能ということですね。 *** AntでFTPタスクを使用したい [#wbf21321] ${ant_home}/lib/ に以下のライブラリを入れる必要があります。 ant 1.5 まではNetComponent.jar ant 1.6 からはcommons-net-1.2.2.jar 1.6.1を使ってるのにNetComponentを配置して、うごかねーって思ってたら、必要ライブラリが変わったんですね。 で実際のタスクの書き方は、 <target name="cvs.ftp" depends="init"> <ftp server="[ホスト名]" remotedir="[サーバのディレクトリ]" userid="xxxx" password="xxxx" > <fileset dir="${report.root}"> <include name="changelog.html" /> </fileset> </ftp> </target> てな感じ。 ***日付処理(n日前の日付をプロパティにセットする、とか) [#u2fa543f] <tstamp> <format property="TODAY" pattern="yyyy/MM/dd" /> </tstamp> <!-- 7日前/10日後を定義する処理 --> <propertyfile file="date.properties"> <entry key = "TODAY-7" type = "date" value = "7" default = "${TODAY}" pattern = "yyyy/MM/dd" operation = "-" /> <entry key = "TODAY+10" type = "date" value = "10" default = "${TODAY}" pattern = "yyyy/MM/dd" operation = "+" /> </propertyfile> <property file="date.properties" /> <delete file="date.properties" /> もっとスマートなやり方がありました。 <tstamp> <format property="TODAY" pattern="yyyy/MM/dd"/> <!-- 7日前/10日後を定義する処理 --> <format property="TODAY-n" pattern="yyyy/MM/dd" offset="-${cvs.num}"/> <format property="TODAY+10" pattern="yyyy/MM/dd" offset="10"/> <format property="lastModified" pattern="yyyy/MM/dd HH:mm:ss"/> </tstamp> ***コンパイル [#bba0e48f] <target name="javac" depends="init"> <mkdir dir="${class.dir}" /> <javac srcdir="${src.dir}" destdir="${class.dir}" encoding="${compile.encoding}" memoryInitialSize="256M" fork="yes" memoryMaximumSize="256M"> <!-- usage : excludes="kino/hoge.org/**" --> <classpath refid="project.class.path" /> </javac> </target> ちなみにクラスパスなどは <path id="project.class.path"> <pathelement path="${java.class.path}" /> <pathelement path="${class.dir}" /> <pathelement path="${jar.dir}" /> <pathelement location="${log.jar}" /> <pathelement location="${swt.jar}" /> </path> とかすればよい。 ***ディレクトリ配下のすべてのjarにクラスパスを通す [#rf0699bf] <path id="all.classes"> <fileset dir="${jar.dir}"> <include name="**/*.jar"/> </fileset> </path> といった書き方をすると、 <!-- Javaテストプログラムの実行 --> <target name="java" depends="javac"> <java classname="kino.test.TestApp2" fork="yes" maxmemory="256M" > <arg line="hogehoge" /> <classpath refid="all.classes" /> </java> </target> と書くことができる。こうするとすべてのjarファイルにクラスパスを通したことになる。 *** javacタスクで、Ant自身が通したクラスパスを無効にする。 [#b6e66809] 題名の通り、デフォルトは有効なので(ようするにxercesImpl.jarなどは、${ANT_HOME}/lib/にあるため、クラスパスを通さなくてもコンパイルエラーにならない) それを無効にする方法。javacタスクのオプションで includeAntRuntime="no" とすればよい。 ***AntにVM引数を渡す [#ua9bb3b8] 環境変数 ANT_OPTS を指定すればよいみたい。例えばJavaのメモリ使用量を設定するには export ANT_OPTS=-Xmx512m など。 ***タスクの一覧表示 [#k931a9c8] >ant -projecthelp とすると、プロジェクトの一覧が表示される。以下が結果 Buildfile: build.xml moneytest build file Main targets: Subtargets: clean clover.view code hist.report record.point report.html test with.clover Default target: code ***外部タスクを使う [#s94dc94e] ${ANT_HOME}/lib/ にjarファイルを置く必要がある。 ***独自タスクの定義 [#k87e203e] 基本的にはtaskdefタグで行う。下記がサンプル。 <taskdef name="java2html" classname="com.java2html.Java2HTMLTask"> <classpath> <pathelement location="${j2h.jar}" /> </classpath> 上でそのタスクが存在するjarを指定。 </taskdef> ***Java2html(旧バージョン) [#y9111d4a] ${j2h.jar}は、j2h.jarを指定(ファイルはhttp://www.java2html.com/より取得)((Java2htmlは新しいバージョンができて、Ant用タスクが定義されたりと、上記内容は古いものとなっています。)) <target name="j2h" depends="javac"> <mkdir dir="${j2h.dir}"/> <java classname="j2h" fork="yes" maxmemory="256M" > <arg line="-js ${src.dir} -d ${j2h.dir} -t 2 -m 4" /> <classpath> <pathelement location="${j2h.jar}" /> </classpath> </java> </target> ---- この記事は #vote(おもしろかった[9],そうでもない[5]) -ant --noconfig てなんだっけ。。。 -- [[きの]] &new{2006-12-18 09:34:30 (月)}; #comment #topicpath SIZE(10){現在のアクセス:&counter;}