Grails GGTS 在命令提示符下运行"grails war"时"Task 'assemble' not found in root project"错误



我一直在使用一些视频教程学习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的一个版本,那么您应该将所有内容都设置为使用该版本,即使它是旧版本。

最新更新