我想根据 和 的短名称自动命名我的appName
WARappVersion
文件Environment.current
。我有以下选项设置BuildConfig.groovy
:
String currentEnvShortName = Environment.envNameMappings.find{it.value == Environment.current.name}.key
def f = new File("grails-app/conf/config.properties")
f.text = ""
f << "Current Env: ${currentEnvShortName}"
grails.project.war.file = "target/war/${appName}-${appVersion.toString().replaceAll(/\./,' ').split().join("-")}${currentEnvShortName}.war"
我将环境写入文件,这样我就不必等待war
命令执行。编辑:使用 GGTS 命令行。首先,我认为一切都按预期进行。我平时的部署流程如下:
- 跑
grails clean
- 运行
war
所需环境的命令 - 在应用服务器上部署 WAR
然而,在 clean 之后,也可能在其他 grails 命令之后,值Environment.current
以我不理解的方式发生变化。我总是dev
第一次运行war
命令。第一次之后,环境名称会再次正确检索。所以我做的解决方法是:
- 跑
grails clean
war
为所需环境运行命令,但在启动后立即中断- 运行
war
所需环境的命令 - 在应用服务器上部署 WAR
我做错了什么还是这是一个错误?
重现环境:
GGTS 3.6.4 发布
圣杯 2.4.2
Groovy 2.3.10
JDK 1.6.0_07
编辑:我无法从常规命令行使用 Grails 重现。此行为仅发生在 Groovy Grails Tool Suite 的内置命令行中。环境似乎在随机切换。
编辑 2:操作系统:Windows 7