圣杯3:"could not determine grails wrapper version due to missing gradle.properties"



我们正在尝试在Grails 3中启动一个新项目。

我们因此创建了一个项目:

grails create-app plugin-domain --profile=plugin

现在遵循此处的文档,在第4.1节中创建一个域类,它说要这样做:

./grailsw create-domain-class Vehicle

当我们使用域类进行此操作时,我们会得到:

"could not determine grails wrapper version due to missing gradle.properties"

我们不知道什么是Grailsw(我们习惯于使用2.5使用" Grails"(,并且我们不知道Gradle. Properties应该包含什么,也不知道为什么它不是由Grails自动构建的。

显然,这是一个插件(仅旨在保存域对象和服务(,而不是应用程序,因此我们不能直接使用Run-App运行它。

有趣的是,我们只是尝试了旧的方式,使用" Grails create-domain-class xxx",并且它起作用,所以问题是为什么推荐的Grailsw命令工作不正确,我们如何修复它?

进行一些调查,Grailsw是某种包装纸,不需要安装圣杯。有人运行诸如Create-Domain级诸如Create-Domain类之类的东西都会安装圣杯,所以我们不太了解它的意义吗?它将导致至少两次安装的圣杯,一旦以适当的方式安装,第二次由包装系统安装。包装器的用例是什么?在生产中,您会在tomcat上发动战争或类似的战争,在开发人员中,所有开发人员无论如何都会安装圣杯。我们可以忽略Grailsw,还是需要修复它?

如果您尚未安装Gradle,则需要Grailsw。您可以将其删除并使用Gradle,也可以手动创建类。

gradle.properties用于构建常数。

创建文件gradle.properties在您的应用程序root dir中,带有效果的内容:

grailsVersion=3.2.11
gormVersion=6.0.12.RELEASE
grailsWrapperVersion=3.4.1

将值更改为您的项目版本,然后再次尝试。/grailswcreate-domain-class车辆

为什么不推荐的Grailsw命令工作,以及我们如何修复

它不起作用,因为 gradle.properties文件丢失。为什么缺少它,我不知道,因为它在运行命令时会为我创建。

Jamess-MacBook-Pro:demo jameskleeh$ grails create-app foo -profile plugin
| Application created at /Users/jameskleeh/demo/foo
Jamess-MacBook-Pro:demo jameskleeh$ cd foo
Jamess-MacBook-Pro:foo jameskleeh$ cat gradle.properties
grailsVersion=3.2.9
gormVersion=6.0.10.RELEASE
gradleWrapperVersion=3.4.1

任何运行诸如Create-Domain-Class之类的东西都会有圣杯 已安装,所以我们不太了解它的意义?

也许您可以与您的团队合作,但是不适用于所有人。

一旦 适当的方式,第二次由包装系统进行。

这是不正确的。包装纸不会像您通过SDKMAN或仅下载它一样"安装"了Grails。如果尚不存在,它将将Grails下载到您的Maven高速缓存中。当您第一次解决该版本的依赖项时,无论您是否使用包装器,它都会在您的Maven缓存中,因此它不会在系统中添加任何内容。

包装器的用例是什么?

包装器的用例是,开发人员不必为现有项目管理Grails版本。在处理可能具有不同版本的多个项目时,您不必在安装版本之间切换。如果您始终使用包装器,则始终使用正确的Grails版本。此外,可能根本没有安装圣杯的开发人员不需要安装圣杯才能开始在项目上工作。

也不需要在系统上安装圣杯来创建项目。使用start.grails.org网站,您可以使用单击按钮或简单的卷发命令下载新鲜创建的项目。然后,您可以将Grails包装器与这些项目一起使用,而根本不必安装Grail。

相关内容

最新更新