创建没有版本号的grails war

时间:2008-10-02 21:13:40

标签: grails

如何创建grails war文件,使其没有版本号

(例如foo-0.1.war)

当我执行'grails war'命令时,

附在最后?

7 个答案:

答案 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

中所述

此方法通常适用于战争,不仅适用于格里尔战争。