Javaで作成したアプリケーションを配布する場合には、実行に必要なファイルをまとめてアーカイブします。例えば、Javaアプリケーションであればjar形式のファイルに圧縮しますし、Webアプリケーションであればwar形式のファイルに圧縮します(war形式のファイルに関する詳細は、「Eclipseで.warファイルを作成する」)が詳しいので、合わせて参照してください)。
本TIPSでは、Antでwarファイルを作成する際に使用するjarタスクとwarタスクについて説明します。
設定内容
(1)アーカイブするフォルダ
今回のサンプルでは、下記のような「Antでファイル操作を行う」で構成したStrutsベースのシンプルなWebアプリケーションをアーカイブします。
sampleappフォルダをアーカイブし、プロジェクト直下にsampleapp.warと呼ばれるファイルを作成します。
(2)jarタスクでwarファイルを作成する
warファイルを作成するには、以下のようにbuild.xmlに記述します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
この例では、distターゲットを使いwarファイルを作成しています。jarタスクのdestfile属性に出力するファイル名、basedir属性にアーカイブするディレクトリを指定します。
Antを実行すると、プロジェクト直下にsampleapp.warが作成されていることが確認できると思います。warファイル(jarファイル)はzip形式で圧縮されるので、市販の圧縮解凍ツールを使用することで、ファイルの内容を確認することができます。
なお、Antでは下記のjarコマンドと同じ処理が実行されています。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
(3)warタスクでwarファイルを作成する
warタスクはwarファイル独自のフォルダ構成(WEB-INF等)を処理するために、jarタスクを拡張したものです。先ほどの処理をwarタスクで書き換えてみます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
warタスクではwebxml属性にてweb.xmlの場所を明示的に指定する必要があります。また、WEB-INF配下にすでにweb.xmlが存在している場合は、警告メッセージが出力されるためexcludes属性にて除外設定をしています。
(4)warタスクを使用するメリット
ただ、上記の例では、warタスクを利用するメリットが少ないように思われたかもしれません。jarタスクで十分まかなえるのに、なぜあえてwarタスクが用意されているのでしょうか。
warタスクでは下記の例のように、lib、classes、webinfといった子要素(配下タグ)を使用して、ファイルの配置場所を容易に指定することができます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
このようにwarタスクではwarファイルの特別なフォルダ構成を簡易に取り扱うことができるというメリットがあります。既存のファイルをアーカイブするだけの簡単な処理であればjarタスクで問題ありませんが、複雑な構成の場合にはwarタスクを使用することをお勧めします。
Copyright © ITmedia, Inc. All Rights Reserved.