2017-07-07 93 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中,并为其中的本地配置文件提供路径。

就是这样。