如何创建一个 grails war 文件,使其没有版本号
(例如 foo-0.1.war)
当我执行'grails war'命令时附加到最后?
如果有人看到本文并且正在使用 Grails 1.3.x,配置选项已从
grails.war.destFile
中的 Config.groovy
更改为 grails.project.war.file
中的 BuildConfig.groovy
。
文件名也是相对于项目工作空间的,因此它应该具有如下值:
grails.project.war.file = "target/${appName}.war"
这是根据最新的 Grails 文档。
我认为你可以在war命令中指定war名称。
grails war foo.war
另请检查最新的 Grails 文档,了解在哪里将其设置为配置选项。详情请参阅其他答案。
摘自 Grails 文档,第 17 章,部署
还有很多方法可以自定义 WAR 文件 创建的。例如,您可以指定 路径(绝对路径或相对路径) 到指示它在哪里的命令 放置文件及其名称 给它:
grails war /opt/java/tomcat-5.5.24/foobar.war
或者,您可以添加一行 更改默认值的 Config.groovy 位置和文件名:
grails.war.destFile = "foobar-prod.war"
当然,任何命令行参数 你提供的覆盖这个 设置。
汇总其他优秀答案。 有几种选择:
在命令行上显式设置:
grails war foo.war
在application.properties中将
app.version
属性设置为空,将会导致战争被命名为foo.war
。
使用 Config.groovy 中的
grails.war.destFile
属性显式设置战争名称
生成没有版本号的 war 文件的另一种方法是将 application.properties 中的属性 app.version
保留为空我参加聚会有点迟到了……但无论如何:
我认为删除版本号的原因是为了消除重命名 war 文件的需要,以便它部署在“正确”上下文路径/appName上。如果是这种情况,那么更好的选择是使用版本化的 war 文件名,这样您就可以在 grails-app/conf/BuildConfig.groovy 中使用以下命名模式在 tomcat 上同时部署多个版本:
grails.project.war.file = "target/${appName}##${appVersion}.war"
如http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Parallel_deployment
中所述这个方法适用于一般的战争,而不仅仅是grails的战争。