J'utilise Apache Ant 1.8 pour déployer une application Web sur un serveur Tomcat local, et le fichier build.xml (ci-dessous) produit l'effet souhaité lorsque j'exécute 'ant deploy' sur la ligne de commande.
Ma question est la suivante: j'ai remarqué que le fichier .war était placé là où je m'attendais (deploy.dir est défini dans le fichier build.properties de mon répertoire personnel), mais il a également décompressé de manière inattendue le .war et extrait le contexte lui-même dans ce même annuaire. Où dans le fichier build.xml ci-dessous est-ce configuré?
<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>
Tomcat a un dossier de déploiement automatique dans lequel tout fichier war que vous placez sera automatiquement décompressé et déployé. Votre fichier ant copie simplement le fichier war dans ce répertoire en appelant une URL spéciale dans l'application Web tomcat-manager (qui est préemballée dans le tomcat).
À partir de là, tout est géré automatiquement par le noyau de tomcat, juste si vous copiez manuellement le fichier war dans le répertoire webapps.
Vous pouvez demander à fourmi d'en faire beaucoup plus avec certaines tâches spécifiques aux fourmis pour le chat. Surtout si le serveur Tomcat n'est pas sur la machine locale. Voir ce lien pour plus de détails .
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots