Ant-creating-war-files
Ant-WARファイルの作成
Antを使用したWARファイルの作成は非常に簡単で、JARファイルの作成タスクに非常に似ています。 結局、JARファイルのようなWARファイルは単なる別のZIPファイルです。
WARタスクはJARタスクの拡張機能ですが、WEB-INF/classesフォルダーに入る内容を操作し、web.xmlファイルを生成するための素晴らしい追加機能がいくつかあります。 WARタスクは、WARファイルの特定のレイアウトを指定するのに役立ちます。
WARタスクはJARタスクの拡張であるため、JARタスクのすべての属性がWARタスクに適用されます。
Sr.No. | Attributes & Description |
---|---|
1 |
webxml web.xmlファイルへのパス |
2 |
lib WEB-INF \ libフォルダーに入れるものを指定するグループ。 |
3 |
classes WEB-INF \ classesフォルダーの内容を指定するグループ。 |
4 |
metainf MANIFEST.MFファイルを生成するための指示を指定します。 |
*Hello World* Fax Applicationプロジェクトを続けて、jarファイルを生成する新しいターゲットを追加しましょう。 しかしその前に、戦争の課題を考えてみましょう。 次の例を考慮してください-
<war destfile = "fax.war" webxml = "${web.dir}/web.xml">
<fileset dir = "${web.dir}/WebContent">
<include name = "**/*.*"/>
</fileset>
<lib dir = "thirdpartyjars">
<exclude name = "portlet.jar"/>
</lib>
<classes dir = "${build.dir}/web"/>
</war>
前の例のように、 web.dir 変数はソースWebフォルダー、つまりJSP、css、javascriptファイルなどを含むフォルダーを参照します。
*build.dir* 変数は出力フォルダーを参照します-これは、WARパッケージのクラスが見つかる場所です。 通常、クラスはWARファイルのWEB-INF/classesフォルダーにバンドルされます。
この例では、fax.warというwarファイルを作成しています。 WEB.XMLファイルは、Webソースフォルダーから取得されます。 Webの下の「WebContent」フォルダーのすべてのファイルがWARファイルにコピーされます。
WEB-INF/libフォルダーには、thirdpartyjarsフォルダーのjarファイルが取り込まれます。 ただし、portlet.jarはアプリケーションサーバーのlibフォルダーに既に存在するため、除外しています。 最後に、ビルドディレクトリのWebフォルダーからすべてのクラスをコピーし、WEB-INF/classesフォルダーに入れています。
warタスクをAntターゲット(通常はパッケージ)内にラップして実行します。 これにより、指定した場所にWARファイルが作成されます。
クラス、lib、metainf、webinfディレクタをネストして、プロジェクト構造のどこにでも散在するフォルダに配置することは完全に可能です。 ただし、ベストプラクティスでは、WebプロジェクトはWARファイルの構造に類似したWebコンテンツ構造を持つ必要があることを示唆しています。 FAXアプリケーションプロジェクトの構造は、この基本原則を使用して概説されています。
warタスクを実行するには、ターゲット(最も一般的にはビルドまたはパッケージターゲット)内にラップして実行します。
<target name = "build-war">
<war destfile = "fax.war" webxml = "${web.dir}/web.xml">
<fileset dir = "${web.dir}/WebContent">
<include name = "**/*.*"/>
</fileset>
<lib dir = "thirdpartyjars">
<exclude name = "portlet.jar"/>
</lib>
<classes dir = "${build.dir}/web"/>
</war>
</target>
このファイルでAntを実行すると、 fax.war ファイルが作成されます。
次の結果は、Antファイルを実行した結果です-
C:\>ant build-war
Buildfile: C:\build.xml
BUILD SUCCESSFUL
Total time: 12.3 seconds
fax.warファイルは、出力フォルダーに配置されます。 戦争ファイルの内容は次のようになります-
fax.war:
+---jsp This folder contains the jsp files
+---css This folder contains the stylesheet files
+---js This folder contains the javascript files
+---images This folder contains the image files
+---META-INF This folder contains the Manifest.Mf
+---WEB-INF
+---classes This folder contains the compiled classes
+---lib Third party libraries and the utility jar files
WEB.xml Configuration file that defines the WAR package