我一直在使用一些视频教程学习Groovy/Grails Tool Suite(GGTS)3.6.4和Grails 2.4.4。当我试图使用Windows命令提示符上的grails war
命令将项目打包到应用程序中时,我会得到以下错误:
"错误Gradle构建因错误而终止:在根项目中找不到任务"assembly"…">
我在网上发现的任何对此错误的引用都只涉及Android Studio(例如),所以我不知道如何为GGTS修复它。
我安装了Android Studio 1.0.1,为了防止它影响Grails的封装,我尝试了从Android Studio的通用文件"MyApplication.iml"中删除<component name="FacetManager">
的解决方案,但没有效果。我找不到任何类似的GGTS文件。
如果问题出现在我的整体安装中,我安装了Java JRE 7_79(64位)以及JDK 1.7.0_79(64位
好。我发现了错误的原因,以及以后如何避免。
问题
Grails 3.0.1需要以下文件才能使grails war
工作:
- build.gradle
- grade.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没有使用正确的本地文件设置项目目录,因此打包失败。
避免未来发生
因此,在使用GGTS3.6.4时,请确保所有对Grails的引用都指向Grails 2.4.4。
一般来说,如果任何GGTS捆绑包包含Grails的一个版本,那么您应该将所有内容都设置为使用该版本,即使它是旧版本。