Créer une guerre de Grails sans numéro de version
-
03-07-2019 - |
Question
Comment créer un fichier de guerre de Grails afin qu'il ne possède pas le numéro de version
(par exemple, foo-0.1.war)
attaché à la fin lorsque j'exécute la commande 'guerre de Grails'?
La solution
Je pense que vous pouvez spécifier le nom de la guerre dans le commandement de la guerre.
grails war foo.war
Consultez également la dernière documentation Grails pour savoir où définir cette option en tant qu'option de configuration. Voir les autres réponses pour plus de détails.
Autres conseils
Si quelqu'un découvre cet article et utilise Grails 1.3.x, l'option de configuration est passée de grails.war.destFile
dans Config.groovy
et devient < code> grails.project.war.file dans BuildConfig.groovy
.
De plus, le nom du fichier est relatif à l'espace de travail du projet. Il doit donc avoir une valeur telle que:
grails.project.war.file = " target / $ {appName} .war "
Selon la dernière documentation Grails .
Extrait de la Documentation Grails , Chapitre 17, Déploiement
Il existe également de nombreuses façons de personnaliser le fichier WAR. créé. Par exemple, vous pouvez spécifier un chemin (absolu ou relatif) à la commande qui indique où pour placer le fichier et quel nom donnez-le:
grails war /opt/java/tomcat-5.5.24/foobar.war
Vous pouvez également ajouter une ligne à Config.groovy qui change la valeur par défaut emplacement et nom de fichier:
grails.war.destFile = "foobar-prod.war"
Bien sûr, tout argument de ligne de commande que vous fournissez annule cette réglage.
Cumuler les autres excellentes réponses. Il y a plusieurs options:
Définissez-le explicitement sur la ligne de commande: grails war foo.war
Définissez la propriété app.version
sur vide dans application.properties. La guerre sera nommée foo.war
.
Définissez explicitement le nom de la guerre à l'aide de la propriété grails.war.destFile
dans Config.groovy
Grails 3.x est passé à gradle et utilise le plug-in war . . Vous pouvez simplement spécifier un nom comme celui-ci dans le fichier build.gradle
:
war {
archiveName 'foo.war'
}
Une autre façon de générer des fichiers war sans numéro de version consiste à conserver la propriété, app.version , vide dans le application.properties
.Je suis un peu en retard à la fête ... mais quand même:
Je pense que la suppression du numéro de version a pour but de supprimer le besoin de renommer le fichier war afin qu'il soit déployé sur " correct ". chemin de contexte / appName . Si tel est le cas, une meilleure option consiste à utiliser un nom de fichier war avec version afin de pouvoir déployer plusieurs versions simultanément sur tomcat en utilisant le modèle d'attribution de nom suivant dans grails-app / conf / BuildConfig.groovy :
grails.project.war.file = "target/${appName}##${appVersion}.war"
Comme expliqué dans http: //tomcat.apache. org / tomcat-7.0-doc / config / context.html # déploiement parallèle_
Cette méthode s’applique aux guerres en général et pas seulement aux guerres de Grail.