Apache Antによるwarファイルの作成

| コメントをどうぞ

EclipseなどのIDEではわざわざビルドファイルを作成しなくても簡単にwarファイルが作れますが、最初からやってみたかったのでやりました。

プロジェクトディレクトリの構成は以下のようにしました。

+ project

    + dist                  warファイルの出力先

    + classes               コンパイル済みのclassファイルが格納されているディレクトリ

    + lib                   ここに格納しているライブラリをWebアプリケーション内で使用する

    + web
        + css               モジュールに含めるディレクトリまたはファイル
        + js                〃
        - index.html        〃

        + WEB-INF
            - web.xml       配備記述子を入力したファイル

warファイルの作成タスクは次の通りにしました。

<target name="buildwar">

    <war destfile="./dist/toolbox.war" webxml="./web/WEB-INF/web.xml">

        <classes dir="./classes" />

        <lib dir="./lib" />

        <fileset dir="./web">
            <exclude name="WEB-INF" />
        </fileset>

    </war>

</target>

war要素

  • destfile属性
    warファイルの出力後のパスを指定します。
    例では/project/distディレクトリ以下にtoolbox.warが作成されます。

  • webxml属性
    配備記述子を入力したファイルを指定します。
    例では/project/web/WEB-INF/web.xmlに入力した内容が、下図の/toolbox/WEB-INF/web.xmlに出力されます。

classes要素

dir属性にクラスファイルを格納したディレクトリを指定します。
下図の/toolbox/WEB-INF/classesとして反映されます。

lib要素

dir属性にWebアプリケーション内で使用するライブラリ等を格納したディレクトリを指定します。
下図の/toolbox/WEB-INF/libとして反映されます。

fileset属性

htmlファイルやスタイルシート等のWebアプリケーションモジュールに含めたいファイルをここに指定することで、Webアプリケーションモジュールに含められます。
例では/project/web/WEB-INFディレクトリ以下を除外して、jsディレクトリ以下、cssディレクトリ以下、index.htmlが下図の通りに含められます。

以下は作成したwarを展開した内容です。

+ toolbox
    + js
    + css
    - index.html

    + META-INF

    + WEB-INF
        + lib
        + classes
        - web.xml

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>