是否有“内置”方式将BuildConfig从插件共享到主机应用程序? 我们有一个使用自制插件的应用程序,我们需要从插件复制/粘贴所有特殊配置(所以每个但依赖)设置到当前应用程序. 这非常
我们有一个使用自制插件的应用程序,我们需要从插件复制/粘贴所有特殊配置(所以每个但依赖)设置到当前应用程序.
这非常糟糕,它带来了维护问题:当插件A更改其配置时,我们需要使用此配置更新所有项目.
我希望能够尽可能多地重用插件中的构建设置,并将特定设置(或替换设置)添加到主项目BuildConfig中.
我们想要分享的属性类型是:
>常见的grails配置块如:
grails.project.class.dir =“target / classes”
grails.project.test.class.dir =“target / test-classes”
grails.project.test.reports.dir =“target / test-reports”
grails.project.target.level = 1.6
grails.project.source.level = 1.6
>特定插件配置:
grails.project.myplugin.config = {specials things}
>一些公共属性,如依赖版本
实际上我们希望在构建配置中有一种继承,有点像在maven pom文件中定义父项目时.
在您的MyAppGrailsPlugin.groovy中,您需要添加合并配置功能:def doWithSpring = { mergeConfig(application) } private void mergeConfig(GrailsApplication app) { ConfigObject currentConfig = app.config.grails.fooConfig ConfigSlurper slurper = new ConfigSlurper(Environment.getCurrent().getName()); ConfigObject secondaryConfig = slurper.parse(app.classLoader.loadClass("FooConfig")) ConfigObject config = new ConfigObject(); config.putAll(secondaryConfig.fooConfig.merge(currentConfig)) app.config.grails.fooConfig = config; } def onConfigChange = { event -> this.mergeConfig(application) }
参考:http://swestfall.blogspot.ca/2011/08/grails-plugins-and-default-configs.html