Crea grails war sin numero de version.
-
03-07-2019 - |
Pregunta
¿Cómo creo un archivo de guerra de grails para que no tenga el número de versión
(por ejemplo, foo-0.1.war)
adjunto al final cuando ejecuto el comando 'grails war'?
Solución
Creo que puedes especificar el nombre de guerra en el comando de guerra.
grails war foo.war
También puedes consultar la última documentación de Grails para saber dónde configurar esto como una opción de configuración. Vea las otras respuestas para más detalles.
Otros consejos
En caso de que alguien llegue a este artículo y esté utilizando Grails 1.3.x, la opción de configuración ha cambiado de grails.war.destFile
en Config.groovy
a ser < código> grails.project.war.file en BuildConfig.groovy
.
También el nombre del archivo es relativo al área de trabajo del proyecto, por lo que debe tener un valor como:
grails.project.war.file = " target / $ {appName} .war "
Esto está de acuerdo con la última documentación de Grails .
De la Documentación de Grails , Capítulo 17, Implementación
También hay muchas formas en que puede personalizar el archivo WAR que está creado. Por ejemplo, puede especificar un camino (ya sea absoluto o relativo) al comando que lo instruye donde colocar el archivo y el nombre dalo:
grails war /opt/java/tomcat-5.5.24/foobar.war
Alternativamente, puede agregar una línea a Config.groovy que cambia la predeterminada ubicación y nombre de archivo:
grails.war.destFile = "foobar-prod.war"
Por supuesto, cualquier argumento de línea de comando que proporcionas anula esto configuración.
Enrollando las otras excelentes respuestas. Hay varias opciones:
Establézcalo explícitamente en la línea de comando: grails war foo.war
Establezca la propiedad app.version
para vaciar en application.properties hará que la guerra se llame foo.war
.
Establezca explícitamente el nombre de la guerra usando la propiedad grails.war.destFile
en Config.groovy
Grails 3.x ha cambiado a gradle y usa el war plugin . Solo puede especificar un nombre como este en el archivo build.gradle
:
war {
archiveName 'foo.war'
}
Otra forma de generar archivos de guerra sin número de versión es mantener la propiedad, app.version , vacía en la aplicación.properties
Llego tarde a la fiesta ... pero de todos modos:
Creo que la razón para eliminar el número de versión es eliminar la necesidad de cambiar el nombre del archivo war para que se despliegue en " correcto " ruta de contexto / appName . Si ese es el caso, entonces una mejor opción es usar un nombre de archivo de guerra versionado para que pueda implementar múltiples versiones al mismo tiempo en Tomcat usando el siguiente patrón de denominación en grails-app / conf / BuildConfig.groovy :
grails.project.war.file = "target/${appName}##${appVersion}.war"
Como se explica en http: //tomcat.apache. org / tomcat-7.0-doc / config / context.html # Parallel_deployment
Este método se aplica a las guerras en general, no solo a las guerras de los griales.