2017-07-07 91 views
0

我想弄清楚如何從我的Grails 3應用程序中分離特定於配置的配置。在Grails 2中,我可以設置一個配置位置查找,它將加載我的dev特定的配置文件。而在Grails的3我發現,運行應用程序時,我可以提供額外的春天CONFIGS,即:覆蓋插件的Grails配置

./grailsw -Dspring.config.location=classpath:application.yml,file:///home/nigel/src/app/dev.yml run-app 

然而,這並不工作,如果我使用的插件,如下面的,它只會使用的grails-app/conf目錄/ application.yml的配置:

./grailsw -Dspring.config.location=classpath:application.yml,file:///home/nigel/src/app/dev.yml url-mappings-report 

所以我的問題是,我該如何提供部署的/ dev特定的配置文件的Grails,使其與Grails插件工作。

回答

0

對於grails 3,您可以使用external config插件。並配置配置位置。

grails.config.locations = ["classpath:myconfig.groovy"] 
+0

謝謝,我可以得到這種工作,如果我在application.yml文件中設置grails.config.locations參數,而不是將它作爲JVM參數傳遞,這將是最靈活的方法。 所以,這給我留下了一個問題,我應該用什麼來指向項目主目錄的變量替換?我試過$ {project.home}和$ {grails.home},但都沒有工作。 我可以按照建議使用類路徑,但在類路徑中使用「外部」配置似乎違反直覺。 – Nigel

+0

在運行war時,沒有項目主目錄,您不應該使用項目主目錄,而應該使用類路徑中的文件,或用戶主目錄中的文件,或catalina基目錄中的某處並支持所有這些文件,請閱讀文檔的插件 –

0

嘗試爲此任務使用Grails 3 external config插件。

這個插件模仿的Grails處理在grails.config.locations

步驟定義的外部配置2方式:

  1. 添加依賴於build.gradle

  2. 創建一個新的本地配置Groovy腳本並添加想要覆蓋的配置。

  3. 將外部配置屬性添加到您的applicatin.ymlapplication.groovy中,併爲其中的本地配置文件提供路徑。

就是這樣。