我想運行一個名爲「local」的自定義環境......就像在本地開發中那樣。在將戰爭部署到「共享」開發服務器之前,我會使用這個配置(例如數據庫連接)。但是我注意到它缺少標準Grails「開發」環境的行爲,例如刷新瀏覽器時無法使用對GSP的更改。定製Grails環境的行爲
所以這讓我想知道你如何改變自定義環境的行爲?如何將「開發」的所有設置複製到另一個環境?
我想運行一個名爲「local」的自定義環境......就像在本地開發中那樣。在將戰爭部署到「共享」開發服務器之前,我會使用這個配置(例如數據庫連接)。但是我注意到它缺少標準Grails「開發」環境的行爲,例如刷新瀏覽器時無法使用對GSP的更改。定製Grails環境的行爲
所以這讓我想知道你如何改變自定義環境的行爲?如何將「開發」的所有設置複製到另一個環境?
我不認爲自動重新加載是依賴於環境的。如果您執行grails run-app
,則無論您在哪個環境下運行,重新加載都會發生。換句話說,自動重裝將發生於所有的
grails dev run-app
grails prod run-app
grails test run-app
在另一方面,重裝如果你建立一個使用grails war
戰爭不會發生,那麼部署它。所以重新加載取決於你如何運行應用程序,而不是環境。定義類似於dev的自定義環境的最簡單方法是定義一組默認配置,然後有選擇地覆蓋每個環境的設置,例如,
//default config
myApp {
userRoleName = 'ROLE_USER'
adminRoleName = 'ROLE_ADMIN'
dateFormat = 'yyyy-MM-dd'
}
environments {
// config overrides for dev
development {
myApp.dateFormat = 'yyyy/MM/dd'
}
// config overrides for local
local {
myApp.dateFormat = 'MM/yy/dd'
}
}
謝謝唐,你說的是有道理的,這就是我認爲它應該工作。我只是再試一次,如果我運行「grails -Dgrails.env =本地運行應用程序」或「grails -Dgrails.env =本地開發運行應用程序」重新加載不起作用(在Grails 2.0.1下)。所以像這樣運行它應該在「dev」中找到任何東西,但覆蓋任何我已經定義了「local」的東西 - 就像你上面所描述的那樣...這就是它如何工作的配置設置,但重裝似乎會丟失 – Steve 2012-03-06 00:12:49
I必須同意史蒂夫 - Grails重載功能不適用於自定義環境。 GSP重新編譯可以通過在命令行中添加'-Dgrails.gsp.enable.reload = true'來解決,但* .grails類仍然被忽略。添加'-Ddisable.auto.recompile = false'沒有幫助。我正在使用Grails 2.1.1 – curd0 2012-09-25 13:34:54
您可以啓用自定義環境指定運行應用程序標記修改普惠制重裝:
-Dgrails.gsp.enable.reload=true
很高興知道,謝謝! – Steve 2012-05-02 21:41:16
會不「‘共享’開發服務器」更適合作爲自定義環境? – doelleri 2012-03-05 06:24:27
謝謝,是的,實際上這是我現在開始下的路徑,但好奇心現在贏得了我...我需要更好地理解Grails的另一部分...什麼使得發展env不同完全不同,我如何定製這個if需要... – Steve 2012-03-05 08:45:23