2016-06-22 3 views
0

Voici la structure de mon fichier de guerre.comment changer un fichier dans le répertoire web-inf/classes en guerre sans le déballer?

MyApp.war 
     WEB-INF 
      classes/com/info/App.java 
      classes/application.properties 
      lib/ 
     META-INF 
     test 

juste avant le déploiement de cette guerre à tomcat, l'équipe Ops aura besoin de mettre à jour le fichier application.properties.

Je préfère ne pas exploser. mais juste de mettre à jour la guerre et laisser tomcat exploser lors du démarrage

J'ai essayé

jar uvf MyApp.war /var/data/prod/application.properties 

Après avoir exécuté cette commande, je vois un nouveau fichier ajouté au niveau racine de MyApp.war. mais je veux que WEB-INF/classes/application.properties soit remplacé celui-ci. Comment puis-je le faire.

Répondre

1

Je ne crois pas que ce soit la bonne approche de toute façon, vous devriez votre fichier extérioriser de configuration comme il changera d'un env à un autre , donc ça ne devrait pas faire partie de vos archives. Vous devez adapter votre code pour pouvoir lire la configuration de votre application à partir d'un dossier externe. Votre équipe Ops aura alors le même war à déployer sur tous les env au lieu d'un par env, ce qui est beaucoup moins sujette aux erreurs.

1

Que diriez-vous cette ....

mkdir -p /tmp/MyApp.war/WEB-INF/classes 
cp /var/data/prod/application.properties /tmp/MyApp.war/WEB-INF/classes 
jar -uvf MyApp.war -C /tmp/MyApp.war WEB-INF 
rm -rf /tmp/MyApp.war 
+0

@brain storm, as-tu testé ma réponse? –