Ant のバックアップ差分(No.27)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Ant へ行く。
- 1 (2007-08-16 (木) 17:16:53)
- 2 (2007-11-30 (金) 14:02:54)
- 3 (2008-07-29 (火) 00:59:01)
- 4 (2008-09-14 (日) 17:44:32)
- 5 (2009-11-04 (水) 18:56:04)
- 6 (2010-11-20 (土) 15:01:26)
- 7 (2010-12-17 (金) 15:28:14)
- 8 (2010-12-19 (日) 18:55:11)
- 9 (2011-01-14 (金) 17:12:45)
- 10 (2011-01-18 (火) 22:49:08)
- 11 (2011-01-21 (金) 14:33:56)
- 12 (2011-02-15 (火) 19:56:36)
- 13 (2011-06-03 (金) 13:29:57)
- 14 (2012-01-19 (木) 18:52:53)
- 15 (2012-01-25 (水) 00:15:51)
- 16 (2012-03-06 (火) 14:30:03)
- 17 (2012-07-20 (金) 16:22:52)
- 18 (2014-02-18 (火) 19:13:59)
- 19 (2014-02-19 (水) 02:27:17)
- 20 (2014-09-02 (火) 15:44:27)
- 21 (2014-09-27 (土) 01:45:29)
- 22 (2014-11-08 (土) 01:39:55)
- 23 (2016-03-07 (月) 15:53:03)
- 24 (2016-06-15 (水) 16:57:49)
- 25 (2016-12-06 (火) 15:15:24)
- 26 (2017-01-23 (月) 19:59:27)
- 27 (2017-02-15 (水) 14:01:28)
- 28 (2017-03-24 (金) 12:44:41)
- 29 (2017-09-11 (月) 14:24:11)
- 30 (2017-09-19 (火) 18:30:26)
- 31 (2017-09-23 (土) 14:05:31)
- 32 (2017-10-19 (木) 16:07:45)
- 33 (2017-10-27 (金) 16:26:13)
- 34 (2017-10-31 (火) 20:52:57)
- 35 (2017-11-01 (水) 17:14:55)
- 36 (2017-11-16 (木) 18:13:36)
- 37 (2018-01-16 (火) 19:45:36)
- 38 (2018-10-27 (土) 20:59:14)
- 39 (2019-10-02 (水) 19:45:28)
- 40 (2022-09-30 (金) 20:13:52)
- 追加された行はこの色です。
- 削除された行はこの色です。
---
keywords: [Ant]
description: JavaベースのビルドツールであるAntの使い方についてメモしています。
author: aterai
pubdate: 2003-09-25
---
#contents
* 概要 [#b59a5f9b]
`Ant`は、`Java`ベースのビルドツールです。理論的には、`make`の欠点がない`make`の一種です(`Ant`翻訳より引用)。
このページでは、`Java`ベースのビルドツールである`Ant`の使い方についてメモしています。
* インストールと環境変数の設定 [#v1ec3010]
[http://ant.apache.org/ Apache Ant - Welcome]などからダウンロードしたアーカイブを展開して、そこを環境変数`ANT_HOME`に設定します。「システムのプロパティ→詳細設定→環境変数」で、`ANT_HOME`を新規作成、もしくは編集してください。
#ref(https://lh4.googleusercontent.com/_9Z4BYR88imo/TQsClLJ428I/AAAAAAAAAs0/B0-VGelgHu4/s800/ant_home.png)
また、`%ANT_HOME%\bin\ant.bat`を使うために、パスを通しておきます。「システムのプロパティ→詳細設定→環境変数」で、`Path`を編集してください。
#ref(https://lh4.googleusercontent.com/_9Z4BYR88imo/TQsClNPEp4I/AAAAAAAAAs8/hdtpb5o_pG4/s800/ant_path.png)
* タスクのサンプル [#of688f72]
`build.xml`、タスクなどのサンプルや、その他のちょっとした`Tips`などを、以下別ページにまとめています。
** AntのConditionタスクで条件分岐を行う [#aa49e22c]
`Condition`タスクを使って、例えばディレクトリの有無などによる条件で、`Target`タスクを実行するかどうかを振り分けます。
- [[AntのConditionタスクで条件分岐を行う>Ant/Condition]]
** AntのScriptタスク中でif文を使った条件分岐を行う [#k88bfb49]
`Condition`タスクの条件が複雑になるようなら、`<script language="javascript">`タスクなどで`if`文を使う方法もあります。
- [[AntのScriptタスク中でif文を使った条件分岐を行う>Ant/Script]]
** AntのTaskを自作 [#d8026cb6]
`Ant`の`Task`を自作し、これを利用する方法をテストします。
- [[AntのTaskを自作>Ant/Task]]
** AntのScriptタスクでJavaScriptを使用する [#b7ff3b37]
`Ant`の`Script`タスクで`JavaScript`を使用し、簡単なタスクを作成、実行します。
- [[AntのScriptタスクでJavaScriptを使用する>Ant/NewProperty]]
** AntのJarタスクで実行可能なJarファイルの作成 [#q763cefc]
`Ant`を使って、`Windows`環境などでダブルクリックすると起動する`Jar`ファイルを作成します。
- [[AntのJarタスクで実行可能なJarファイルの作成>Ant/JarPackage]]
** AntでOutOfMemoryErrorが発生する場合 [#yee90b60]
`Ant`を実行すると`OutOfMemoryError`が発生する場合の処置方法について解説しています。
- [[AntでOutOfMemoryErrorが発生する場合>Ant/OutOfMemoryError]]
** AntのプロパティファイルをXMLにする [#fb0bd314]
プロパティファイルのエンコーディングなどを気にせずに使えるように、`Ant`のプロパティファイルを`XML`にしてみます。
- [[AntのプロパティファイルをXMLにする>Ant/Properties]]
** Antで子フォルダのbuild.xmlを全部実行 [#cca68c8e]
`Subant`タスクを使って、一度に全部同じターゲットで子フォルダの`build.xml`を実行します。
- [[Antで子フォルダのbuild.xmlを全部実行>Ant/Subant]]
** Antのbasedirを子フォルダに変更して全部実行 [#i684141c]
`basedir`をカレントディレクトリ(`${user.dir}`)とは別の場所に指定して、`ant.bat`を実行します。
- [[Antのbasedirを子フォルダに変更して全部実行>Ant/basedir]]
** AntでFindBugsを実行する [#eeb19868]
`Ant`から`FindBugs`を実行します。
- [[AntでFindBugsを実行する>Ant/FindBugs]]
** AntでPMDを実行する [#nf28b60e]
`Ant`から`PMD`を実行します。
- [[AntでPMDを実行する>Ant/PMD]]
* targetのサンプル [#ab627600]
** Checkstyleタスク [#b426d5d8]
#code{{
<condition property="have.checkstyle">
<available file="${env.CHECKSTYLE_JAR}" />
</condition>
<target name="checkstyle" if="have.checkstyle">
<taskdef resource="com/puppycrawl/tools/checkstyle/ant/checkstyle-ant-task.properties"
classpath="${env.CHECKSTYLE_JAR}" />
<mkdir dir="${build.reports}" />
<checkstyle config="${user.dir}/checks.xml" failOnViolation="false">
<formatter type="plain" />
<formatter type="xml" toFile="${build.reports}/checkstyle-result.xml" />
<fileset dir="${src.dir}">
<include name="**/*.java" />
</fileset>
</checkstyle>
</target>
}}
** ErrorProneタスク [#w4a0bdde]
- [http://errorprone.info/ Error Prone]
-- [http://errorprone.info/docs/flags Command-line flags]
#code{{
<target name="errorprone" depends="prepare-src, prepare-resource, prepare-web">
<componentdef name="errorprone"
classname="com.google.errorprone.ErrorProneExternalCompilerAdapter"
classpath="${errorprone.dir}/error_prone_ant-2.0.9.jar" />
<javac srcdir="${build.src}"
includes="**/*.java"
destdir="${build.dest}"
encoding="${compile.encoding}"
debug="${compile.debug}"
optimize="${compile.optimize}"
deprecation="${compile.deprecation}"
includeAntRuntime="no"
fork="true"
classpathref="project.class.path">
<errorprone />
<compilerarg value="-Xlint:unchecked" />
<!-- MultipleTopLevelClassesのチェックを無視する例 -->
<compilerarg value="-Xep:MultipleTopLevelClasses:OFF" />
</javac>
</target>
}}
** Scpタスク [#x8ac45f9]
#code{{
<path id="jsch.path">
<property name="scp.userid" value="${env.SCP_USERID}" />
<property name="scp.server" value="${env.SCP_SERVER}" />
<property name="scp.remotedir" value="${env.SCP_BASEDIR}" />
<pathelement location="${ant.home}/lib/ant-jsch.jar" />
<!-- http://www.jcraft.com/jsch/ からダウンロードして${ant.home}/lib/以下にコピー -->
<pathelement location="${ant.home}/lib/jsch-0.1.53.jar" />
</path>
<target name="scp">
<taskdef name="scp" classname="org.apache.tools.ant.taskdefs.optional.ssh.Scp"
classpathref="jsch.path" />
<!-- scp.userなどは、環境変数またはant scp -Dscp.user=fooなどで指定 -->
<scp todir="${scp.user}@${scp.server}:${scp.remotedir}"
keyfile="${user.home}/.ssh/id_rsa" trust="yes">
<fileset refid="scp.upload.fileset" />
</scp>
</target>
}}
* その他 [#f3dd13ae]
** `buildfile`オプション [#e6cb38d3]
`build.xml`ファイルを作ってコマンドプロンプトから`ant.bat`を実行します。引数が無い場合、カレントフォルダにある`build.xml`が使用されます。
ant
任意の`build.xml`を使いたいときは、以下のようなオプションを使って指定します。
ant -buildfile "c:\hoge project\hoge_build.xml"
ant -f "c:\hoge project\hoge_build.xml"
[[xyzzy]]などから、`ant.bat`をサブプロセス(KBD{C-x &})として実行する場合は、`-emacs`オプションを追加します。このオプションをつけると、[[xyzzy]]のバッファに表示されたエラー上でKBD{F10}キー(標準のキーバインドでは、KBD{F11}キーを押すと次のエラーへ移動)を押すだけで、そのエラーの出たファイルの該当する行に、自動的にジャンプすることができます。
ant -emacs -buildfile "c:\hoge\build.xml"
ant -e -f "c:\hoge\build.xml"
** `build.xml`ファイル [#v251ad1c]
ネットを検索すれば、いろんな`build.xml`が見つかるので、まずはその中からサンプルを選び、[http://ant.apache.org/manual/index.html マニュアル]([http://www.jajakarta.org/ant/ant-1.6.1/docs/ja/manual/index.html 日本語訳])を見ながら修正すると、手っ取り早く作成することができます。
- `build.xml`と`build.properties`のサンプル
-- http://ateraimemo.com/data/ant/build.zip
-- この`build.zip`ファイルには、ソースコードのほかに、`build.xml`と`build.properties`を添付しています。`build.properties`は、環境依存しそうな記述を`build.xml`から抜き出したプロパティファイルです。[http://www.jdom.org/ JDOM]などから拾ってきた記述を追加、編集したりして作成しています。実際に使用する場合は、`build.properties`ファイルを環境に合わせて編集してください。そのまま使用する場合は、`build.xml`を展開し、`src/java`フォルダ以下にソースコード(`Shift_JIS`)を置いてください。
- [[Java Swing Tips>Swing]]以下のサンプル
-- http://ateraimemo.com/swing/toolbarlayout/src.zip
-- このサイトの[[Java Swing Tips>Swing]]のサンプルに添付されている`build.xml`はすべて同一です。こちらは、「`build.xml`と`build.properties`のサンプル」とは違い、ソースコードは`UTF-8`で、`build.properties`ではなく、`xml`ファイル(`properties.xml`)をプロパティファイルとして使用しています。
* 参考リンク [#v9b28311]
- [http://ant.apache.org/ Apache Ant]
- [http://ant.apache.org/manual/index.html Apache Ant Manual]
- [http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/free?page=xyzzy xyzzy Antモード]
* コメント [#i47478e7]
#comment
#comment