2008-10-02 7 views

Répondre

33

Je pense que vous pouvez spécifier le nom de guerre dans la commande de guerre.

grails war foo.war 

Vérifiez également la dernière documentation de Grails pour savoir où définir cette option de configuration. Voir les autres réponses pour plus de détails.

+3

Sidenote: le faisant, par défaut, le fichier WAR ne sera pas compilé dans le répertoire 'target' comme on pouvait s'y attendre, mais dans votre répertoire de projet. Cependant, vous pouvez également spécifier le chemin, voir http://grails.org/doc/2.2.1/ref/Command%20Line/war.html – peterp

+0

Ceci ne fonctionne pas dans les grails 3.3.2 –

9

De l'Grails Documentation, Chapitre 17, Déploiement

Il y a aussi plusieurs façons dont vous pouvez personnaliser le fichier WAR qui est créé. Par exemple, vous pouvez spécifier un chemin (absolu ou relatif) à la commande qui indique là où de placer le fichier et quel nom donner:

grails war /opt/java/tomcat-5.5.24/foobar.war 

Vous pouvez ajouter une ligne à Config.groovy qui change l'emplacement par défaut et le nom:

grails.war.destFile = "foobar-prod.war" 

Bien sûr, tout argument de ligne de commande que vous fournissez passe outre réglage.

+2

C'est en fait la meilleure réponse –

0

Une autre façon de générer des fichiers de guerre sans numéro de version est de garder la propriété, app.version, vide dans les application.properties

+0

Cela fonctionne et est la meilleure réponse, car c'est la source primaire pour cette information. – Tobia

5

retroussent les autres excellentes réponses. Il y a plusieurs options:

mis sur Explicitement la ligne de commande: grails war foo.war

Définissez la propriété app.version à vide application.properties provoquera la guerre à elle porte le nom foo.war.

EXPLICITEMENT le nom de la guerre en utilisant la propriété grails.war.destFile dans Config.groovy

40

Au cas où quelqu'un vient sur cet article et utilise Grails 1.3.x, l'option de configuration a changé de grails.war.destFile en Config.groovy d'être grails.project.war.file au BuildConfig.groovy.

également le nom du fichier est par rapport à l'espace de travail de projet, il devrait donc avoir une valeur comme:

grails.project.war.file = "target/${appName}.war"

C'est selon le dernier Grails documentation.

+1

Ceci est également pertinent pour grails 2.x – winna

2

Grailles 3.x est passé à gradle et utilise le plugin war. Vous pouvez simplement indiquer le nom comme celui-ci dans le fichier build.gradle:

war { 
    archiveName 'foo.war' 
} 
+1

Pour Grails 3, vous devez utiliser 'archiveName' au lieu de 'archive'. https://stackoverflow.com/questions/33621966/create-grails-3-war-without-version-number – Zan

+0

bonne prise. J'ai mis à jour l'exemple de code. – j4y

Questions connexes