如何创建grails war文件,使其没有版本号
(例如foo-0.1.war)
当我执行'grails war'命令时,附在最后?
答案 0 :(得分:41)
如果有人遇到本文并使用Grails 1.3.x,则配置选项已从grails.war.destFile
中的Config.groovy
更改为grails.project.war.file
中的BuildConfig.groovy
。
此外,文件名相对于项目工作区,因此它应具有如下值:
grails.project.war.file = "target/${appName}.war"
这是根据最新的Grails documentation。
答案 1 :(得分:34)
我认为您可以在war命令中指定战争名称。
grails war foo.war
另请查看最新的Grails文档,了解将其设置为配置选项的位置。有关详细信息,请参阅其他答案。
答案 2 :(得分:10)
来自Grails Documentation, 第17章,部署
您还可以通过多种方式自定义WAR文件 创建。例如,您可以指定 路径(绝对路径或相对路径) 指示它在哪里的命令 放置文件和名称 给它:
grails war /opt/java/tomcat-5.5.24/foobar.war
或者,您可以添加一行 Config.groovy更改默认值 位置和文件名:
grails.war.destFile = "foobar-prod.war"
当然,任何命令行参数 你提供的覆盖了这一点 设置。
答案 3 :(得分:5)
汇总其他优秀答案。有几种选择:
在命令行上显式设置:grails war foo.war
在application.properties中将app.version
属性设置为空将导致战争命名为foo.war
。
使用Config.groovy中的grails.war.destFile
属性显式设置战争名称
答案 4 :(得分:3)
Grails 3.x已切换为gradle并使用war插件。您只需在build.gradle
文件中指定这样的名称:
war {
archiveName 'foo.war'
}
答案 5 :(得分:1)
生成没有版本号的war文件的另一种方法是在 application.properties
中保持属性 app.version 为空答案 6 :(得分:0)
我参加聚会有点晚...但是无论如何:
我认为删除版本号的原因是消除了重命名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
中所述此方法通常适用于战争,不仅适用于格里尔战争。