好的。我发现了错误的原因是什么,以及将来如何避免它。
问题
Grails 3.0.1 需要以下文件grails war
才能工作:
- 构建.gradle
- gradle.properties
- 毕业典礼
- gradlew.bat
- \gradle(目录)
Grails 2.4.4 不需要上述任何文件来制作 WAR 文件。
GGTS 3.6.4 不能与 Grails 3.0.1 一起使用,但它与 Grails 2.4.4 一起使用并且可以正常工作。
解决方案
将所述 Gradle 文件和目录复制到 GGTS 项目文件夹可以解决问题。但是,我对需要手动执行此操作或为每个项目使用自定义批处理文件并不满意。
深入研究后发现,在解决我系统上存在的 Java 32 位 JRE 与 Java 64 位 JRE 和 SDK、Grails 和 GGTS 版本之间的兼容性问题时(为了让事情正常工作,需要进行很多工作) ,在某一时刻,我已将 Grails 的全局变量设置为指向 3.0.1,但我未能将其更新为 Grails 2.4.4。进行此更改已解决此问题。
解释原因
在观看这个关于安装一组兼容的 Java、Grails 和 GGTS 的视频系列时,讲师手动从 Grails 站点下载了最新版本的 Grails,然后从其自己的站点单独下载了 GGTS。这两个版本都比我使用的版本旧。
就我而言,事实证明,在设置 Java SDK 和 Grails 之后,最新版本的 GGTS (3.6.4) 无法与最新版本的 Grails (3.0.1) 一起正常工作。幸运的是,GGTS 包附带了旧版本的 Grails (2.4.4),通过引用它,GGTS 可以正常工作。但是,虽然我将 IDE 引用更改为 Grails,但我忘记重置我的环境变量...
因此,GGTS 正在设置使用 Grails 2.4.4 的项目。但是,在调用 时grails war
,该命令使用的是 Grails 3.0.1!显然这两个版本的 Grails 使用不同的文件来创建 WAR 文件,因此 GGTS 没有使用正确的本地文件设置项目目录,并且打包失败。
避免未来发生
因此,在使用 GGTS 3.6.4 时,请确保所有对 Grails 的引用都指向 Grails 2.4.4。
一般来说,如果任何 GGTS 包包含一个 Grails 版本,您应该将所有内容设置为使用该版本,即使它是旧版本。