创建没有版本号的 grails 战争

Posted

技术标签:

【中文标题】创建没有版本号的 grails 战争【英文标题】:Create grails war without version number 【发布时间】:2010-09-14 22:41:22 【问题描述】:

如何创建没有版本号的 grails war 文件

(例如 foo-0.1.war)

当我执行“grails war”命令时附加到末尾?

【问题讨论】:

【参考方案1】:

如果有人看到这篇文章并使用 Grails 1.3.x,配置选项已从 Config.groovy 中的 grails.war.destFile 更改为 BuildConfig.groovy 中的 grails.project.war.file

而且文件名是相对于项目工作区的,所以它应该有一个类似的值:

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

这是根据最新的Grails documentation.

【讨论】:

这也与 grails 2.x 相关【参考方案2】:

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

grails war foo.war

还可以查看最新的 Grails 文档,了解在何处将其设置为配置选项。有关详细信息,请参阅其他答案。

【讨论】:

旁注:这样做时,默认情况下,WAR 文件不会像预期的那样编译到target 目录,而是编译到您的项目目录。但是您也可以指定路径,请参阅grails.org/doc/2.2.1/ref/Command%20Line/war.html【参考方案3】:

来自Grails Documentation,第 17 章,部署

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

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

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

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

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

【讨论】:

这其实是更好的答案【参考方案4】:

汇总其他出色的答案。有几种选择:

在命令行显式设置:grails war foo.war

在 application.properties 中将app.version 属性设置为空将导致战争被命名为foo.war

使用 Config.groovy 中的 grails.war.destFile 属性显式设置战争的名称

【讨论】:

【参考方案5】:

Grails 3.x 已切换到 gradle 并使用 war 插件。您可以在build.gradle 文件中指定这样的名称:

war 
    archiveName 'foo.war'

【讨论】:

对于 Grails 3,您必须使用 'archiveName' 而不是 'archive'。 ***.com/questions/33621966/…【参考方案6】:

另一种生成没有版本号的war文件的方法是在application.properties

中保持属性app.version为空

【讨论】:

这行得通,是最好的答案,因为它是该信息的主要来源。【参考方案7】:

我有点迟到了……但无论如何:

我认为删除版本号的原因是无需重命名 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.project.war.file 属性不适用于 grails 4 嗨@user2782001,您现在找到如何使用上下文路径名创建.war 的方法了吗?用于圣杯 4 我不再使用 grails 但它可能像 grails 3 一样工作。***.com/a/39277804/1284183

以上是关于创建没有版本号的 grails 战争的主要内容,如果未能解决你的问题,请参考以下文章

Maven的dependency中无版本号的可能情况

Maven的dependency中无版本号的可能情况

“Vbox安装CentOS系统”之低级错误一例:版本号的选择

同步引擎版本号的简易方法

如何从增加版本号的 Android Studio 中导出 apk

将战争应用程序名称与战争文件名分开