Ant - tworzenie plików WAR
Tworzenie plików WAR za pomocą Ant jest niezwykle proste i bardzo podobne do zadania tworzenia plików JAR. W końcu plik WAR, podobnie jak plik JAR, jest po prostu kolejnym plikiem ZIP.
Zadanie WAR jest rozszerzeniem zadania JAR, ale ma kilka fajnych dodatków do manipulowania tym, co trafia do folderu WEB-INF / classes i generowania pliku web.xml. Zadanie WAR jest przydatne do określenia konkretnego układu pliku WAR.
Ponieważ zadanie WAR jest rozszerzeniem zadania JAR, wszystkie atrybuty zadania JAR mają zastosowanie do zadania WAR.
Sr.No. | Atrybuty i opis |
---|---|
1 | webxml Ścieżka do pliku web.xml |
2 | lib Grupowanie określające, co trafia do folderu WEB-INF \ lib. |
3 | classes Grupowanie określające, co trafia do folderu WEB-INF \ classes. |
4 | metainf Określa instrukcje dotyczące generowania pliku MANIFEST.MF. |
Kontynuując nasze Hello WorldProjekt aplikacji faksowej, dodajmy nowy cel do tworzenia plików jar. Ale przedtem rozważmy zadanie wojenne. Rozważmy następujący przykład -
<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>
Jak w poprzednich przykładach, plik web.dir zmienna odnosi się do źródłowego folderu WWW, tj. folderu zawierającego pliki JSP, css, javascript itp.
Plik build.dirzmienna odnosi się do folderu wyjściowego - tutaj można znaleźć klasy pakietu WAR. Zazwyczaj klasy zostaną umieszczone w folderze WEB-INF / classes pliku WAR.
W tym przykładzie tworzymy plik wojenny o nazwie fax.war. Plik WEB.XML jest pobierany z folderu źródłowego sieci WWW. Wszystkie pliki z folderu „WebContent” w sieci WWW są kopiowane do pliku WAR.
Folder WEB-INF / lib jest zapełniany plikami jar z folderu thirdpartyjars. Jednak wykluczamy plik portlet.jar, ponieważ znajduje się on już w folderze lib serwera aplikacji. Na koniec kopiujemy wszystkie klasy z folderu sieciowego katalogu kompilacji i umieszczamy w folderze WEB-INF / classes.
Umieść zadanie wojenne w celu Ant (zwykle w pakiecie) i uruchom je. Spowoduje to utworzenie pliku WAR w określonej lokalizacji.
Jest całkowicie możliwe zagnieżdżenie klas, lib, metainf i dyrektorów webinf, tak aby znajdowały się w rozproszonych folderach w dowolnym miejscu struktury projektu. Jednak najlepsze praktyki sugerują, że projekt sieci Web powinien mieć strukturę treści WWW podobną do struktury pliku WAR. Projekt aplikacji faksowej ma strukturę opisaną przy użyciu tej podstawowej zasady.
Aby wykonać zadanie wojenne, umieść je w celu, najczęściej w celu kompilacji lub pakietu, i uruchom je.
<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>
Uruchomienie Ant na tym pliku spowoduje utworzenie fax.war plik dla nas.
Poniższy wynik jest wynikiem działania pliku Ant -
C:\>ant build-war
Buildfile: C:\build.xml
BUILD SUCCESSFUL
Total time: 12.3 seconds
Plik fax.war zostanie umieszczony w folderze wyjściowym. Zawartość akt wojennych będzie następująca:
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