我们正在尝试建立一个新项目并在grails 3中运行。
因此,我们创建了一个项目:
grails create-app plugin-domain --profile=plugin
现在按照here文档,在4.1节中创建域类,它说要这样做:
./grailsw create-domain-class Vehicle
当我们使用域类执行此操作时,我们得到:
"could not determine grails wrapper version due to missing gradle.properties"
我们不知道grailsw是什么(我们习惯在2.5中使用“grails”),也不知道gradle.properties应该包含什么,也不知道为什么grailsw不会自动创建它。
显然,这是一个插件(仅设计用于容纳域对象和服务),而不是应用程序,因此我们不能直接使用run-app运行它。
有趣的是,我们只是尝试使用“grails create-domain-class xxx”的旧方法,并且它起作用了,所以问题是为什么推荐的grailsw命令为什么不起作用,我们如何解决呢?
做一些调查,grailsw是某种包装,不需要安装grails。任何运行诸如create-domain-class之类的东西的人都将安装grails,所以我们不太明白它的意义吗?这将导致grails至少两次安装,一次是正确的安装方式,第二次是由包装系统安装。包装器的用例是什么?在生产中,您将对tomcat或类似产品投降,无论如何,所有开发人员都将安装grails。我们可以忽略grailsw还是需要对其进行修复?
最佳答案
如果尚未安装gradle,则需要grailsw。您可以删除它并使用gradle,也可以手动创建类。
gradle.properties用于构建常量。
在您的应用根目录中创建具有以下内容的gradle.properties文件:
grailsVersion=3.2.11
gormVersion=6.0.12.RELEASE
grailsWrapperVersion=3.4.1
将值更改为您的项目版本,然后再次尝试./grailsw create-domain-class Vehicle