grails 3.0.x如何使用不同的文件后缀创建自定义war name

时间:2015-07-10 06:55:15

标签: grails gradle

在grails 3.0。(1,2,3)中,war文件存在于文件夹' build / libs'

但是,我想用不同的文件后缀重命名战争名称,比如" app.tar.gz",没有版本。

google结果全部是关于grails 2.x

我将grails.project.war.file = "target/${appName}.tar.gz"放在文件夹conf下的application.groovy文件中,但它没用。

Plz帮助我,我用Google搜索并尝试在源代码BuildSettings.groovy中找到解决方案,但它没有用。

2 个答案:

答案 0 :(得分:2)

从Grails版本3开始,构建工具是gradle,您需要从build.gradle文件中更改这些参数

如果您不希望将版本作为软件包名称的一部分,则需要在build.gradle文件中注释(或删除)该版本

例如,运行以下

fhenri@machine:~/project/grails/sample307$ grails -version
| Grails Version: 3.0.7
| Groovy Version: 2.4.4
| JVM Version: 1.8.0_51
fhenri@machine:~/project/grails/sample307$ grails package
...
fhenri@machine:~/project/grails/sample307$ find . -name *.war
./build/libs/sample-0.1.war

After you remove the version from `build.gradle` file
fhenri@machine:~/project/grails/sample307$ grails package
...
fhenri@machine:~/project/grails/sample307$ find . -name *.war
./build/libs/sample.war

Grails使用war gradle plugin,从插件中使用模式使归档名称为[baseName]-[appendix]-[version]-[classifier].[extension],该版本已经来自build.gradle生成的grails create-app文件/ p>

每个都可以在war闭包中覆盖,例如,build.gradle的摘录可能是

version "0.1"
war {
  appendix "so-test"
  version "1.0"
}

生成的war文件将是sample-so-test-1.0.war版本将来自war闭包。

因此,如果您想保留邮件version属性但又不想在生成的战争名称中生成版本,则可以使用空值覆盖该属性

version "0.1"
war {
  version ""
}

会生成一个没有版本信息的war文件,但是如果你想在其他地方使用它,你仍然可以保留它。

要打包为tar / zip,你可以 请遵循grails 3的文档:http://grails.github.io/grails-doc/latest/guide/deployment.html(关于TAR / ZIP分发的章节)

答案 1 :(得分:0)

在build.gradle中,应用gradle war插件后,您可以执行以下操作:

cbind(x, c(x[-1], x[1]))

将在build / libs

创建一个ROOT.war文件