Ant - Membuat file WAR

Membuat file WAR dengan Ant sangat sederhana, dan sangat mirip dengan tugas membuat file JAR. Bagaimanapun, file WAR, seperti file JAR hanyalah file ZIP lainnya.

Tugas WAR adalah perpanjangan dari tugas JAR, tetapi memiliki beberapa tambahan yang bagus untuk memanipulasi apa yang masuk ke folder WEB-INF / class, dan menghasilkan file web.xml. Tugas WAR berguna untuk menentukan tata letak tertentu dari file WAR.

Karena tugas WAR adalah perpanjangan dari tugas JAR, semua atribut tugas JAR berlaku untuk tugas WAR.

Sr.No. Atribut & Deskripsi
1

webxml

Jalur ke file web.xml

2

lib

Pengelompokan untuk menentukan apa yang masuk ke folder WEB-INF \ lib.

3

classes

Pengelompokan untuk menentukan apa yang masuk ke folder kelas WEB-INF \.

4

metainf

Menentukan instruksi untuk membuat file MANIFEST.MF.

Melanjutkan kami Hello WorldProyek Aplikasi Fax, mari kita tambahkan target baru untuk menghasilkan file jar. Tapi sebelumnya mari kita pertimbangkan tugas perang. Perhatikan contoh berikut -

<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>

Seperti contoh sebelumnya, file web.dir variabel mengacu pada folder web sumber, yaitu folder yang berisi file JSP, css, javascript dll.

Itu build.dirvariabel merujuk ke folder keluaran - Di sinilah kelas untuk paket WAR dapat ditemukan. Biasanya, kelas-kelas akan digabungkan ke dalam folder WEB-INF / kelas dari file WAR.

Dalam contoh ini, kami membuat file perang bernama fax.war. File WEB.XML diperoleh dari folder sumber web. Semua file dari folder 'WebContent' di bawah web disalin ke dalam file WAR.

Folder WEB-INF / lib diisi dengan file jar dari folder thirdpartyjars. Namun, kami mengecualikan portlet.jar karena ini sudah ada di folder lib server aplikasi. Terakhir, kami menyalin semua kelas dari folder web direktori build dan meletakkannya di folder WEB-INF / class.

Bungkus tugas perang di dalam target Ant (biasanya paket) dan jalankan. Ini akan membuat file WAR di lokasi yang ditentukan.

Sangat mungkin untuk menyarangkan class, lib, metainf, dan direktur webinf sehingga mereka tinggal di folder yang tersebar di mana saja dalam struktur project. Tetapi praktik terbaik menyarankan bahwa proyek Web Anda harus memiliki struktur Konten Web yang mirip dengan struktur file WAR. Struktur proyek Aplikasi Faks diuraikan menggunakan prinsip dasar ini.

Untuk menjalankan tugas perang, bungkus di dalam target, paling umum, build atau paket target, dan jalankan.

<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>

Menjalankan Ant pada file ini akan membuat file fax.war mengajukan untuk kami.

Hasil berikut adalah hasil dari menjalankan file Ant -

C:\>ant build-war
Buildfile: C:\build.xml

BUILD SUCCESSFUL
Total time: 12.3 seconds

File fax.war sekarang ditempatkan di folder output. Isi dari file perang akan -

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