【问题标题】:How to override plugin Config in Grails?如何在 Grails 中覆盖插件配置?
【发布时间】:2012-09-20 14:47:29
【问题描述】:

我正在使用出色的类图插件https://github.com/trygvea/grails-class-diagram,并希望在我的应用程序 Config.groovy 文件中覆盖此处设置的配置值 classSelection:https://github.com/trygvea/grails-class-diagram/blob/master/grails-app/conf/ClassDiagramConfig.groovy

以下似乎都不起作用:

grails.plugins.class-diagram.classDiagram.config.defaults.classSelection = "com.mypackage.*"
grails.plugins.class-diagram.config.preferences.defaults.classSelection = "com.mypackage.*"
grails.plugins.class-diagram.classDiagram.config.preferences.defaults.classSelection = "com.mypackage.*"

如何访问正确的命名空间以覆盖该值?

谢谢!

【问题讨论】:

    标签: grails plugins configuration


    【解决方案1】:

    Config 属性的名称是任意的,它们不必遵循任何特定的模式或约定,如包名称。

    如果您只有一个要覆盖的属性,您可以使用“扁平化”语法:

    classDiagram.preferences.defaults.classSelection = 'com.mypackage.*'
    

    如果您想将多个属性组合在一起,您还可以使用闭包语法(如示例 Config 文件)声明 Config 属性:

    classDiagram {
        preferences {
            defaults {
                classSelection = "com.mypackage.*"
                showAssociationNames = false
                showMethodReturnType = true
                showMethodSignature = false            
            }
        }
    }
    

    请注意,Grails 插件系统不会自动将插件中的*Config.groovy 文件加载到应用程序的配置中。插件开发者可以设置一个插件来将默认的*Config.groovy文件合并到应用程序的配置中,在这种情况下,应用程序的Config.groovy中的属性通常会覆盖插件提供的配置属性。

    【讨论】:

    • 我更新了这个答案以澄清有关 Grails 插件系统如何从插件加载 Config.groovy 文件的一些事实。
    【解决方案2】:

    Config.groovy 中设置的属性将覆盖插件的 Config.groovy 属性(如果它们具有相同的名称)。您正在为属性添加一个包,但这不是必需的。使用

    classDiagram.preferences.defaults.classSelection = "com.mypackage.*"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      • 1970-01-01
      • 2011-05-30
      • 2013-01-30
      • 1970-01-01
      • 2015-12-10
      • 1970-01-01
      相关资源
      最近更新 更多