我无法从Groovy / Grails工具套件构建Grails 2.2.3项目。 war文件名是动态的,并不总是正确设置。第一个构建将没有问题,但任何连续的构建都将具有以前的文件名。
我使用@Burt Beckwith在Grails war filename based on environment中确定的几乎所有技术来制造包含环境和日期/时间的战争。所以输出战应该像myapp-1.3-TEST-2013_12_02-11_31.war或myapp-1.3-PRODUCTION-2013_12_02-12_00.war
BuildConfig.groovy如下:
grails.project.war.file = "target/${appName}-${appVersion}-${grails.util.Environment.current}-${new Date().format('yyyy_MM_dd-HH_mm')}.war"
如果我从命令行构建,则此问题不存在。我正在使用Groovy / Grails工具套件版本3.3.0。发布ID为201307091644.Java版本为1.6。我在Windows 7 64位计算机上。
我第一次运行“测试战争”时,会正确生成/输出以下内容:
Loading Grails 2.2.3
| Configuring classpath.
| Environment set to test.....
| Packaging Grails application..
| Compiling 179 source files
Note: C:\Users\me\.grails\2.2.3\projects\myapp\plugins\cache-1.0.0\src\java\grails\plugin\cache\web\GenericResponseWrapper.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
| Compiling 179 source files..
| Compiling 31 source files.....
| Compiling 66 GSP files for package [myapp]..
| Compiling 4 GSP files for package [mail]..
| Building WAR file.....
| Done creating WAR target\myapp-1.3-TEST-2013_12_02-11_31.war
第二次运行“ prod war ”时,以下内容生成/输出错误:
Loading Grails 2.2.3
| Environment set to production.....
| Packaging Grails application.....
| Compiling 66 GSP files for package [myapp]..
| Compiling 4 GSP files for package [mail]..
| Building WAR file.....
| Done creating WAR target\myapp-1.3-TEST-2013_12_02-11_31.war
环境和日期/时间不正确!生成一场新的战争代替前一场战争,但是先前的环境和之前的日期!检查战争揭示了生产战争(尽管文件名)。具体来说,我检查了web.xml,发现display-name的值为/myapp-production-1.3。
如前所述,通过命令行未发现此问题:
C:\data\GGTSWorkspace\myapp>grails prod war
| Done creating WAR target\myapp-1.3-production-2013_12_02-10_36.war
C:\data\GGTSWorkspace\myapp>grails test war
| Done creating WAR target\myapp-1.3-test-2013_12_02-10_41.war
我还创建了一个新的虚拟项目并观察了这个新的虚拟项目中的问题,所以我目前认为这是一个GGTS问题/设置。
是否有人知道配置更改以解决此问题?
更新#1:我还能够在Windows上使用最新的GGTS(3.4.0)重现此问题,并且同事已经能够在Mac上重现该问题。< / p>
更新#2:我发现使用GGTS 3.1.0(基于Eclipse 4.2)时不存在此问题。该问题至少出现在GGTS 3.3.0(基于Eclipse 4.3)及以上。
提前致谢!
答案 0 :(得分:3)
我相信当选中“Groovy&gt; Grails&gt;保持外部Grails运行”设置时会发生这种情况。此外,似乎是一个错误,但取消选中这解决了我的问题。