创建没有版本号的grails war

问题描述 投票:0回答:7

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

(例如 foo-0.1.war)

当我执行'grails war'命令时附加到最后?

grails versioning
7个回答
43
投票

如果有人看到本文并且正在使用 Grails 1.3.x,配置选项已从

grails.war.destFile
中的
Config.groovy
更改为
grails.project.war.file
中的
BuildConfig.groovy

文件名也是相对于项目工作空间的,因此它应该具有如下值:


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

这是根据最新的 Grails 文档


34
投票

我认为你可以在war命令中指定war名称。

grails war foo.war

另请检查最新的 Grails 文档,了解在哪里将其设置为配置选项。详情请参阅其他答案。


10
投票

摘自 Grails 文档第 17 章,部署

还有很多方法可以自定义 WAR 文件 创建的。例如,您可以指定 路径(绝对路径或相对路径) 到指示它在哪里的命令 放置文件及其名称 给它:

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

或者,您可以添加一行 更改默认值的 Config.groovy 位置和文件名:

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

当然,任何命令行参数 你提供的覆盖这个 设置。


5
投票

汇总其他优秀答案。 有几种选择:

在命令行上显式设置:

grails war foo.war

在application.properties中将

app.version
属性设置为空,将会导致战争被命名为
foo.war

使用 Config.groovy 中的

grails.war.destFile
属性显式设置战争名称


4
投票

Grails 3.x 已切换到 gradle 并使用 war 插件。 您可以在

build.gradle
文件中指定这样的名称:

war {
    archiveName 'foo.war'
}

1
投票

生成没有版本号的 war 文件的另一种方法是将 application.properties 中的属性 app.version

保留为空

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

中所述

这个方法适用于一般的战争,而不仅仅是grails的战争。

© www.soinside.com 2019 - 2024. All rights reserved.