2010-12-08 3 views
1

Je ne suis pas sûr que cela ait du sens, mais je ne fais que suivre les instructions du boss.Démarrer et arrêter Tomcat via ANT?

Créez un script ANT qui compile le fichier WAR, exécute les tests, arrête le serveur, déploie le fichier WAR, puis redémarre le serveur. Comment puis-je arrêter et démarrer correctement Tomcat via ANT?

Est-ce même une chose viable à faire ou devrait-elle être faite d'une autre manière?

Notez que le script devrait fonctionner sans modifications majeures sur OS X, Linux et Windows.

+0

Oui, c'est viable; vous pouvez voir comment certains IDE font cela (Netbeans génère un script de compilation ant qui compile/packs/déploie WAR et arrête/démarre tomcat, c'est à peu près certain qu'Eclipse/Idea le fait aussi). Ce n'est pas une tâche trop reconnaissante d'écrire un tel script à la main (le mien fait plus de 1k lignes). Comme point de départ, vous pouvez regarder ici: http://www.java-tips.org/other-api-tips/ant/how-to-control-start-and-stop-of-a-tomcat-application-by -ant-build-s-2.html, cependant je préfère déléguer cette tâche à IDE. –

+0

Tout est fait Sauf départ et arrêt. C'est * tout * que je dois faire maintenant. (Dieu merci) – Mantar

+0

Et oui, il est possible de le faire d'une manière plutôt portable (juste sotre paramètres spécifiques dans des fichiers distincts .porperties): http://ant.apache.org/faq.html#implement-os-specific -configuration –

Répondre

1

Je l'ai fait il y a un certain temps. C'est possible. Une partie de ce que j'ai fait à l'époque était de copier une guerre dans le dossier webapps démarrer le tomcat (asynchrone - utilisé le script antRunAsync) et a attendu jusqu'à ce que l'application soit prête, si je me souviens bien (http://jakarta.apache.org/cactus/integration/ant/task_runservertests.html) prêt. Après que tout a été mis en place j'ai exécuté mes tests et après cela j'ai arrêté tomcat encore.

+0

Et vous démarrez et arrêtez sans accès root ..? – Mantar

1

Puisque vous ne pouvez pas utiliser le gestionnaire, la seule façon que je peux penser est quelque chose comme:

<exec dir="." executable="cmd" os="Windows NT"> 
    <arg line="/c 'tomcat.bat start'"/> 
</exec> 
<exec dir="." executable="sh" os="Linux"> 
    <arg line="-c 'tomcat.sh start'"/> 
</exec> 

..its assez maladroite, mais au moins il est une option.

+0

Pour être juste - je ne suis pas limité à Ne pas utiliser le Manager, juste je dois avoir une solution sûre et de travail (et correcte) – Mantar

Questions connexes