Ant のバックアップ(No.31)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - 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)
- 41 (2025-01-03 (金) 08:57:02)
- 42 (2025-01-03 (金) 09:03:21)
- 43 (2025-01-03 (金) 09:04:02)
- keywords: [Ant] description: JavaベースのビルドツールであるAntの使い方についてメモしています。 author: aterai pubdate: 2003-09-25
概要
Antは、Javaベースのビルドツールです。理論的には、makeの欠点がないmakeの一種です(Ant翻訳より引用)。
このページでは、JavaベースのビルドツールであるAntの使い方についてメモしています。
インストールと環境変数の設定
Apache Ant - Welcomeなどからダウンロードしたアーカイブを展開して、そこを環境変数ANT_HOMEに設定します。「システムのプロパティ→詳細設定→環境変数」で、ANT_HOMEを新規作成、もしくは編集してください。
また、%ANT_HOME%\bin\ant.batを使うために、パスを通しておきます。「システムのプロパティ→詳細設定→環境変数」で、Pathを編集してください。
タスクのサンプル
build.xml、タスクなどのサンプルや、その他のちょっとしたTipsなどを、以下別ページにまとめています。
AntのConditionタスクで条件分岐を行う
Conditionタスクを使って、例えばディレクトリの有無などによる条件で、Targetタスクを実行するかどうかを振り分けます。
AntのScriptタスク中でif文を使った条件分岐を行う
Conditionタスクの条件が複雑になるようなら、<script language="javascript">タスクなどでif文を使う方法もあります。
AntのTaskを自作
AntのTaskを自作し、これを利用する方法をテストします。
AntのScriptタスクでJavaScriptを使用する
AntのScriptタスクでJavaScriptを使用し、簡単なタスクを作成、実行します。
AntのJarタスクで実行可能なJarファイルの作成
Antを使って、Windows環境などでダブルクリックすると起動するJarファイルを作成します。
AntでOutOfMemoryErrorが発生する場合
Antを実行するとOutOfMemoryErrorが発生する場合の処置方法について解説しています。
AntのプロパティファイルをXMLにする
プロパティファイルのエンコーディングなどを気にせずに使えるように、AntのプロパティファイルをXMLにしてみます。
Antで子フォルダのbuild.xmlを全部実行
Subantタスクを使って、一度に全部同じターゲットで子フォルダのbuild.xmlを実行します。
Antのbasedirを子フォルダに変更して全部実行
basedirをカレントディレクトリ(${user.dir})とは別の場所に指定して、ant.batを実行します。
AntでFindBugsを実行する
AntからFindBugsを実行します。
AntでPMDを実行する
AntからPMDを実行します。
Antタスクの定義をスクリプト言語を使用して行う
スクリプト言語(Javascript)を使用して、FTPS(File Transfer Protocol over SSL/TLS)で通信するAntタスクを定義します。
targetのサンプル
Checkstyleタスク
<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>
Unable to create Root Module
Checkstyleのバージョン更新に伴うモジュールの廃止などの変更で、configファイル(上記の例では${user.dir}/checks.xml)が不正になった場合などに発生する。
8.2remove FileContentsHolder module as FileContents object is available for filters on TreeWalker in TreeWalkerAudit Event . Author: Timur, Roman Ivanov #3573<module name="FileContentsHolder" />を削除する必要があるLeftCurlyCheck: clarify behavior of 'nlow' option after removal of 'maxLineLength'. Author: Roman Ivanov #3855<property name="maxLineLength" value="100"/>を削除する必要がある<module name="LeftCurly"> <property name="maxLineLength" value="100"/> </module>
8.1Make SuppressionCommentFilter and SuppressWithNearbyCommentFilter children of TreeWalker. Author: Timur #4714<module name="SuppressionCommentFilter" />を<module name="TreeWalker">の子要素になるよう移動削除する必要がある
ErrorProneタスク
<target name="errorprone" depends="prepare-src, prepare-resource, prepare-web">
<path id="errorprone.classpath">
<!-- 環境変数などでerror_prone_ant-x.x.x.jarのあるディレクトリを指定 -->
<fileset dir="${env.ERRORPRONE_HOME}">
<include name="*.jar" />
</fileset>
</path>
<componentdef name="errorprone" classname="com.google.errorprone.ErrorProneExternalCompilerAdapter"
classpathref="errorprone.classpath" />
<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タスク
<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>
その他
buildfileオプション
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をサブプロセス(C-x &)として実行する場合は、-emacsオプションを追加します。このオプションをつけると、xyzzyのバッファに表示されたエラー上でF10キー(標準のキーバインドでは、F11キーを押すと次のエラーへ移動)を押すだけで、そのエラーの出たファイルの該当する行に、自動的にジャンプすることができます。
ant -emacs -buildfile "c:\hoge\build.xml" ant -e -f "c:\hoge\build.xml"
build.xmlファイル
ネットを検索すれば、いろんなbuild.xmlが見つかるので、まずはその中からサンプルを選び、マニュアル(日本語訳)を見ながら修正すると、手っ取り早く作成することができます。
build.xmlとbuild.propertiesのサンプル- http://ateraimemo.com/data/ant/build.zip
- この
build.zipファイルには、ソースコードのほかに、build.xmlとbuild.propertiesを添付しています。build.propertiesは、環境依存しそうな記述をbuild.xmlから抜き出したプロパティファイルです。JDOMなどから拾ってきた記述を追加、編集したりして作成しています。実際に使用する場合は、build.propertiesファイルを環境に合わせて編集してください。そのまま使用する場合は、build.xmlを展開し、src/javaフォルダ以下にソースコード(Shift_JIS)を置いてください。
- Java Swing Tips以下のサンプル
- http://ateraimemo.com/swing/toolbarlayout/src.zip
- このサイトのJava Swing Tipsのサンプルに添付されている
build.xmlはすべて同一です。こちらは、「build.xmlとbuild.propertiesのサンプル」とは違い、ソースコードはUTF-8で、build.propertiesではなく、xmlファイル(properties.xml)をプロパティファイルとして使用しています。

