2017-06-29 33 views
0

我們正在試圖獲得一個新項目,並在Grails的3Grails的3:「無法確定包裝的Grails版本,由於缺少gradle.properties」

運行我們創造正是如此一個項目:

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" 

我們不知道的是(我們習慣了用「Grails的」 2.5)什麼grailsw,我們不知道gradle.properties應該包含什麼,也不知道爲什麼它不是由Grails的自動生成。

顯然,這是一個插件(僅用於保存域對象和服務),而不是應用程序,所以我們無法直接使用run-app運行它。有趣的是,我們只是使用舊的方式,使用「grails create-domain-class xxx」,它的工作,所以問題是爲什麼不推薦grailsw命令工作,我們如何解決它?

做一些調查,grailsw是一些不需要安裝grails的包裝。任何運行諸如create-domain-class之類的東西都會安裝Grails,所以我們不太明白它的意義。這將導致grails至少被安裝兩次,一旦正確的方式,第二次由包裝系統。什麼是包裝的用例?在生產中,你會放棄對tomcat或類似的戰爭,在dev中,所有開發者都會安裝grails。我們可以忽略grailsw,還是我們需要修復它?

回答

1

如果您尚未安裝gradle,則需要grailsw。你可以刪除它並使用Gradle,或者你可以手動創建類。

gradle.properties用於構建常量。

建立在你的應用程序根目錄文件gradle.properties與如下因素的內容:

grailsVersion=3.2.11 
gormVersion=6.0.12.RELEASE 
grailsWrapperVersion=3.4.1 

變化值到您的項目版本,並嘗試./grailsw創建域級再次

+0

」如果您還沒有安裝gradle,則需要grailsw,您可以將其刪除並使用gradle,也可以手動創建類。「那是不正確的。您不能使用gradle執行所有Grails命令。如果您安裝了Grails,則不需要包裝。你幾乎不需要安裝Gradle,因爲提供了包裝器,類似於Grails包裝器。 –

1

爲什麼汽車不推薦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 

任何運行,如創建域級將有Grails的安裝 ,所以我們不太看的地步了嗎?

也許你可以對你的團隊做出這樣的假設,但是這並不適用於每個人。

這將導致grails被安裝至少兩次,一次是正確的方式,第二次由包裝系統安裝。

這是不正確的。 Grails不會被封裝器「安裝」,就像你通過sdkman或者直接下載它一樣。如果它尚不存在,它會將Grails下載到您的maven緩存中。首次解決該版本的依賴關係時,無論您是否使用包裝器,Grails都將存放在您的maven緩存中,因此它不會爲您的系統增加任何內容。

包裝的用途是什麼?

包裝的用例使開發人員不必管理現有項目的Grails版本。在處理可能具有不同版本的多個項目時,您不必在安裝的版本之間切換。如果您始終使用包裝器,您將始終使用正確的Grails版本。另外,根本不需要安裝Grails的開發人員無需安裝Grails即可開始工作。

在您的系統上安裝Grails來創建項目也沒有必要。通過start.grails.org網站,您可以通過點擊按鈕或簡單的curl命令下載新創建的項目。然後,您可以使用這些項目的Grails包裝器,並且根本不需要安裝Grails。 「