当前位置 : 主页 > 手机开发 > 其它 >

grails – 有没有办法将BuildConfig从一组插件继承到当前应用程序?

来源:互联网 收集:自由互联 发布时间:2021-06-19
是否有“内置”方式将BuildConfig从插件共享到主机应用程序? 我们有一个使用自制插件的应用程序,我们需要从插件复制/粘贴所有特殊配置(所以每个但依赖)设置到当前应用程序. 这非常
是否有“内置”方式将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

网友评论