Java/Ant/TIPS集
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#topicpath
----
**AntのTIPS集 [#zfe6185a]
#contents
***可変ファイル名のファイルを、固定ファイル名のファイルと...
日付がついて出力される可変ファイル名のjarファイルを、SNAP...
<copy tofile="target/hogehogelib-SNAPSHOT.jar">
<fileset dir='target' includes="hogehogelib-*.jar" exc...
</copy>
target内にある hogehogelib-*.jar ていう名前のファイルを t...
おなじファイルセットでDeleteすれば、リネーム完了。
***AntをJavaコマンドから実行する [#se1d11d5]
Antのカスタムクラスをブレークポイントなどを使ってDebugし...
-Javaの実行で、メインクラス名を
org.apache.tools.ant.Main
にする
-実行のプリファレンスページでクラスパスにant-launcher.jar...
-プログラムの引数にターゲット名を指定する
でいけますね。ブレークポイントが使えるのは非常に便利!
http://www.ingrid.org/jajakarta/ant/ant-1.2/docs-ja/index...
***プロパティを上書き [#b9568c46]
build.xmlには外からプロパティのValueを渡すことができます...
$ ant -Dproject.name=newProjectname
とすれば、build.xml内の${project.name}を「newProjectname...
*** 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日前の日付をプロパティにセットする、とか) [#...
<tstamp>
<format property="TODAY" pattern="yyyy/MM/dd" />
</tstamp>
<!-- 7日前/10日後を定義する処理 -->
<propertyfile file="date.properties">
<entry key = "TODAY-7" type = "date" value = "7" defa...
<entry key = "TODAY+10" type = "date" value = "10" de...
</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...
<format property="TODAY+10" pattern="yyyy/MM/dd" offse...
<format property="lastModified" pattern="yyyy/MM/dd HH...
</tstamp>
***コンパイル [#bba0e48f]
<target name="javac" depends="init">
<mkdir dir="${class.dir}" />
<javac srcdir="${src.dir}" destdir="${class.dir}" encod...
memoryInitialSize="256M" fork="yes" memoryMaximumSize="2...
<!-- 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にクラスパスを通す [#rf06...
<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" maxmemo...
<arg line="hogehoge" />
<classpath refid="all.classes" />
</java>
</target>
と書くことができる。こうするとすべてのjarファイルにクラス...
*** javacタスクで、Ant自身が通したクラスパスを無効にする...
題名の通り、デフォルトは有効なので(ようするにxercesImpl.j...
それを無効にする方法。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.Java2...
<classpath>
<pathelement location="${j2h.jar}" />
</classpath> 上でそのタスクが存在するjarを指定。
</taskdef>
***Java2html(旧バージョン) [#y9111d4a]
${j2h.jar}は、j2h.jarを指定(ファイルはhttp://www.java2htm...
<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>
***ディレクトリをいったんとっといて上書きして、処理したら...
newDir -> oldDir へファイルをコピーして、なんか処理。
で、もとに戻すビルドファイル。一度、環境固有の設定情報に...
build.win.properties
source.dir=./src/newDir
dest.dir=./src/oldDir
tmp.dir=./tmp
build.xml
<?xml version='1.0' encoding='UTF-8'?>
<project name='project' default='backup'>
<!--
backup -> copy -> .... build -> restore
-->
<property file="build.win.properties"/>
<target name='backup'>
<copy todir='${tmp.dir}' overwrite="true" preservelastm...
<fileset dir='${dest.dir}' defaultexcludes="no" />
</copy>
</target>
<target name='copy'>
<copy todir='${dest.dir}' overwrite="true" preservelas...
<fileset dir='${source.dir}' excludes="**/**.svn"/>
</copy>
</target>
<target name='restore'>
<delete dir="${dest.dir}"/>
<copy todir='${dest.dir}' overwrite="true" preservelas...
<fileset dir='${tmp.dir}' defaultexcludes="no" />
</copy>
<delete dir="${tmp.dir}"/>
</target>
</project>
----
この記事は
#vote(おもしろかった[20],そうでもない[10])
-ant --noconfig てなんだっけ。。。 -- [[きの]] &new{2006-...
- こっここっここ -- [[コッシー]] &new{2010-10-27 (水) 11:...
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
終了行:
#topicpath
----
**AntのTIPS集 [#zfe6185a]
#contents
***可変ファイル名のファイルを、固定ファイル名のファイルと...
日付がついて出力される可変ファイル名のjarファイルを、SNAP...
<copy tofile="target/hogehogelib-SNAPSHOT.jar">
<fileset dir='target' includes="hogehogelib-*.jar" exc...
</copy>
target内にある hogehogelib-*.jar ていう名前のファイルを t...
おなじファイルセットでDeleteすれば、リネーム完了。
***AntをJavaコマンドから実行する [#se1d11d5]
Antのカスタムクラスをブレークポイントなどを使ってDebugし...
-Javaの実行で、メインクラス名を
org.apache.tools.ant.Main
にする
-実行のプリファレンスページでクラスパスにant-launcher.jar...
-プログラムの引数にターゲット名を指定する
でいけますね。ブレークポイントが使えるのは非常に便利!
http://www.ingrid.org/jajakarta/ant/ant-1.2/docs-ja/index...
***プロパティを上書き [#b9568c46]
build.xmlには外からプロパティのValueを渡すことができます...
$ ant -Dproject.name=newProjectname
とすれば、build.xml内の${project.name}を「newProjectname...
*** 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日前の日付をプロパティにセットする、とか) [#...
<tstamp>
<format property="TODAY" pattern="yyyy/MM/dd" />
</tstamp>
<!-- 7日前/10日後を定義する処理 -->
<propertyfile file="date.properties">
<entry key = "TODAY-7" type = "date" value = "7" defa...
<entry key = "TODAY+10" type = "date" value = "10" de...
</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...
<format property="TODAY+10" pattern="yyyy/MM/dd" offse...
<format property="lastModified" pattern="yyyy/MM/dd HH...
</tstamp>
***コンパイル [#bba0e48f]
<target name="javac" depends="init">
<mkdir dir="${class.dir}" />
<javac srcdir="${src.dir}" destdir="${class.dir}" encod...
memoryInitialSize="256M" fork="yes" memoryMaximumSize="2...
<!-- 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にクラスパスを通す [#rf06...
<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" maxmemo...
<arg line="hogehoge" />
<classpath refid="all.classes" />
</java>
</target>
と書くことができる。こうするとすべてのjarファイルにクラス...
*** javacタスクで、Ant自身が通したクラスパスを無効にする...
題名の通り、デフォルトは有効なので(ようするにxercesImpl.j...
それを無効にする方法。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.Java2...
<classpath>
<pathelement location="${j2h.jar}" />
</classpath> 上でそのタスクが存在するjarを指定。
</taskdef>
***Java2html(旧バージョン) [#y9111d4a]
${j2h.jar}は、j2h.jarを指定(ファイルはhttp://www.java2htm...
<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>
***ディレクトリをいったんとっといて上書きして、処理したら...
newDir -> oldDir へファイルをコピーして、なんか処理。
で、もとに戻すビルドファイル。一度、環境固有の設定情報に...
build.win.properties
source.dir=./src/newDir
dest.dir=./src/oldDir
tmp.dir=./tmp
build.xml
<?xml version='1.0' encoding='UTF-8'?>
<project name='project' default='backup'>
<!--
backup -> copy -> .... build -> restore
-->
<property file="build.win.properties"/>
<target name='backup'>
<copy todir='${tmp.dir}' overwrite="true" preservelastm...
<fileset dir='${dest.dir}' defaultexcludes="no" />
</copy>
</target>
<target name='copy'>
<copy todir='${dest.dir}' overwrite="true" preservelas...
<fileset dir='${source.dir}' excludes="**/**.svn"/>
</copy>
</target>
<target name='restore'>
<delete dir="${dest.dir}"/>
<copy todir='${dest.dir}' overwrite="true" preservelas...
<fileset dir='${tmp.dir}' defaultexcludes="no" />
</copy>
<delete dir="${tmp.dir}"/>
</target>
</project>
----
この記事は
#vote(おもしろかった[20],そうでもない[10])
-ant --noconfig てなんだっけ。。。 -- [[きの]] &new{2006-...
- こっここっここ -- [[コッシー]] &new{2010-10-27 (水) 11:...
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
ページ名: