LoginSignup
54
65

More than 5 years have passed since last update.

Antでよく使うターゲットの書き方

Last updated at Posted at 2014-01-23

わかりやすさを優先するため、以下説明ではディレクトリやパスは直接記載しています。一般的には、build.properties等に外出ししたほうがよいです。

初期化

ビルド後のモジュールが生成されるディレクトリは、毎回クリーンな状態を保つために、削除して再作成する。

<target name="clean">
   <delete dir="target" />
   <mkdir dir="target" />
</target>

クラスパスを通す

ターゲットではないが、これも必要となる。
コンパイル等に必要なJarファイルにクラスパスを通す。

<path id="build.lib">
   <fileset dir="src/main/webapp/WEB-INF/lib" includes="*.jar" />
</path>

コンパイル

ソースコードをコンパイルする。

<target name="compile">
    <mkdir dir="target/classes"/>
    <javac classpathref="build.lib" srcdir="src/main/java" destdir="target/classes"
            encoding="utf-8"
           source="1.7"
           target="1.7"
           fork="true"  
           memorymaximumsize="256m"
           includeAntRuntime="false"
           debug="true" 
           debuglevel="lines,vars,source"/>
</target>

javacタスクのオプションの説明

オプション 説明
classpathref クラスパス通したpathのidを指定する。
srcdir コンパイル対象のソースコードのディレクトリ。ディレクトリが複数ある場合は、スペース区切りで続ける。
destdir コンパイルした結果のクラスファイルの出力先
encoding ソースファイルのエンコード。指定しないと実行環境のデフォルトになってしまう。
source ソースコードが準拠しているのJDKのバージョン。つまり使用している文法のバージョン。例えば、StringBuilderを使用している場合は、1.4を指定するとコンパイルエラーとなる。
target クラスファイルをJVMのどのバージョン用に作るか。例えば、ソースコードは1.5の文法を使用しているが、実行環境は1.4の場合は、このオプションを1.4にしておけば実行可能となる。はず。
fork 外部プロセスとしてコンパイラを実行するかどうか。trueにしないと後述のメモリサイズ指定が有効にならないのでtrueにしておく。
memorymaximumsize コンパイルで使用するJVMの最大ヒープサイズ。ソースコード量が多いとヒープが足りなくなる時があるので、ここで調整する。
includeAntRuntime クラスパスに、Antのランタイムライブラリを含めるかどうか。余計なライブラリは含まない方がいいので、falseにしておく。
debug クラスファイルにデバッグ情報を埋め込むか否か。trueにしないと、このクラスファイルを実行した時のスタックトレースにソースコードの行番号がでなくなる。
debuglevel デバッグのレベルのようだが詳細不明。lines,vars,sourceを固定で記載しておく

ファイル・ディレクトリのコピー

ファイルディレクトリーをコピーする。
環境によってプロパティファイルを変更する場合などに利用できる。

<target name="copy_properties">
    <copy todir="target/classes" overwrite="true">
        <fileset dir="production/resources" includes="**/*.*" />
    </copy>
</target>

warファイルの作成

warファイルを生成する。
コンパイルターゲットが事前に実行され、target/classesにクラスファイルがあることが前提。

<target name="war">
        <copy todir="target/war">
            <fileset dir="src/main/webapp" excludes="*/web.xml */lib/ */classes/">
            </fileset>
        </copy>
        <war destfile="target/sample.war" basedir="target/war" 
             webxml="src/main/webapp/WEB-INF/web.xml">
             <classes dir="target/classes" />
             <lib dir="src/main/webapp/WEB-INF/lib" includes="*.*" />
        </war>
</target>

Javaクラスの実行

Javaのクラスを実行する。
- 指定したクラスはmainメソッドが実装されている必要がある。
- コンパイル後のクラスファイルにもクラスパスが通っていること。
- argでmainメソッドに引数を渡すことができる。

<target name="execJava">
    <java classname="jp.co.sample.SampleBatch" classpathref="build.lib" failonerror="true" fork="true">
        <arg value="test" />
    </java>
</target>

CheckStyleを実行する

まず、CheckStyleを実行するためのjarファイルをダウンロードする。

zipファイルを解答し、checkstyle-5.6-all.jarとcheckstyle_checks.xmlを任意ディレクトリへ配置。

<target name="checkstyle">

   <taskdef resource="checkstyletask.properties"     
    classpath="lib/checkstyle/checkstyle-5.6-all.jar" />

    <checkstyle config="checkstyle_checks.xml" failOnViolation="false">
    <formatter type="xml" tofile="checkstyle_report.xml" />
    <fileset dir="src/main/java" includes="**/*.java" />
    </checkstyle>
</target>

Tomcatへのデプロイ

あとで記載する。

SCPでファイルを転送する

あとで記載する。

SSHでリモートのシェルを実行する

あとで記載する。

FindBugsを実行する

あとで記載する。

Junitを実行する

あとで記載する。

Subversionへ自動的にコミットする

あとで記載する。

54
65
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
54
65