Wie Apache Ant setzt .war-Datei für Tomcat
Bin ich mit Apache Ant 1.8 das bereitstellen einer web-Anwendung in einem lokalen Tomcat-server und die build.xml Datei (unten) erzeugt den gewünschten Effekt, wenn ich ausführen von "ant deploy" auf der Kommandozeile.
Meine Frage ist, ich habe bemerkt, dass die .war-Datei wird dort platziert, wo ich erwarte, dass es (bereitstellen.dir ist definiert in mein home-Verzeichnis zu bauen.Eigenschaften-Datei), aber auch unerwartet ausgepackt die .Krieg und extrahiert den Kontext selbst in das gleiche Verzeichnis. Wo in der unten build.xml Datei, die konfiguriert?
<target name='init'>
<property file='${user.home}/build.properties'/>
<property name='app.name' value='${ant.project.name}'/>
<property name='src.dir' location='src'/>
<property name='lib.dir' location='lib'/>
<property name='build.dir' location='build'/>
<property name='classes.dir' location='${build.dir}/classes'/>
<property name='dist.dir' location='${build.dir}/dist'/>
</target>
<target name='initdirs' depends='init'>
<mkdir dir='${classes.dir}'/>
<mkdir dir='${dist.dir}'/>
</target>
<target name='compile' depends='initdirs'>
<javac srcdir='${src.dir}/java' destdir='${classes.dir}'>
<!--
<classpath>
<fileset dir='${lib.dir}/development' includes='javaee.jar'/>
<fileset dir='${lib.dir}/production' includes='jr.jar'/>
</classpath>
-->
</javac>
</target>
<target name='war' depends='compile'>
<war destFile='${dist.dir}/${app.name}.war' webxml='${src.dir}/web/WEB-INF/web.xml'>
<classes dir='${classes.dir}'/>
<!--
<zipfileset dir='${lib.dir}/production' includes='jr.jar' prefix='WEB-INF/lib' />
-->
<fileset dir='${src.dir}/web' excludes='WEB-INF/web.xml' />
</war>
</target>
<target name='build' depends='war' description='compile and create the war' />
<target name='clean' depends='init' description='Use for a clean build'>
<delete dir='${build.dir}' />
</target>
<target name='ffbuild' depends='clean, build' description='clean and create the war'/>
<target name='deploy' depends='initdirs' description='copy the war file to the app server'>
<delete verbose='true' dir='${deploy.dir}/${app.name}'/>
<fail unless='deploy.dir' message='build.properties must exist in your home directory and define deploy.dir' />
<copy todir='${deploy.dir}' file='${dist.dir}/${app.name}.war'/>
</target>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tomcat hat ein autodeploy Ordner, in dem jeder Krieg-Datei, die Sie platziert haben, werden Sie automatisch entpackt und deployed. Ihre ant-Datei ist, einfach kopieren Sie die war-Datei in diesem Verzeichnis durch den Aufruf einer speziellen URL in der tomcat-manager-Anwendung (welche Fertigpackungen in die tomcat).
Ab diesem Punkt wird alles behandelt, von der tomcat-core automatisch, nur wenn man kopiert die war-Datei in das webapps-Verzeichnis manuell.
Können Sie ant tun, viel mehr mit bestimmten ant-tasks für tomcat. Vor allem, wenn der Tomcat-server ist nicht auf dem lokalen Computer. Sehen Sie diesen link für details.
Haben Sie autodeploy aktiviert in Ihrer Tomcat-installation. Dieser link gibt einen detaillierten überblick über autodeploy, aber in einer nussschale, Tomcat durchsucht bestimmte Verzeichnisse aktualisiert web.xml und war-Dateien. Wenn er eine war-Datei bereitgestellt werden, automatisch.
Einer besseren Art und Weise zu implementieren (vor allem, wenn Sie jemals brauchen werden, um die Bereitstellung auf einer remote-Maschine) ist die Verwendung der Ant-tasks, die mit Tomcat. Auf dieser Seite zeigt, wie Sie Ihren build-Datei, so können Sie bereitstellen und aufheben der Bereitstellung von Ant. Die Seite ist alt, aber die Informationen ist immer noch gut. Hier ist ein Ausschnitt von einem build.xml ich benutze zum bereitstellen von Tomcat:
Finden Sie catalina-ant.jar in der Tomcat lib Verzeichnis.
Ich hatte sehr viel Glück mit Tomcat Ant-tasks für das deployment. Haben Sie einen Blick auf die Ausführung-Manager-Befehle Mit Ant Dokumentation für Informationen. Wenn Sie sich entscheiden, diesen Weg gehen, sollten Sie in der Lage sein, um es arbeiten in kurzer Zeit.
Wohl, du bist die erste kopieren Sie alle Ihre Dateien in Ihrem
dest dir
dann machenwar
- Datei, sollten Sie stattdessen kopieren Sie Ihre Dateien auf einigetemp
Verzeichnis erstellenwar
- Datei, kopieren Sie es aufdest dir
entfernentemp
Verzeichnis.