【问题标题】:Chaining Grails Plugins?链接 Grails 插件?
【发布时间】:2014-05-13 02:06:09
【问题描述】:
我正在尝试构建一个 Grails 插件,它将充当一套其他 Grails 应用程序的“主插件”。
我想知道是否有可能以某种方式将插件链传递在一起?假设 Plugin A 依赖于 Plugin B,并且 Grails App GA1 使用(安装)Plugin A。当开发人员将 Plugin A(“主”)安装到 Grails App GA1 时,他们最终会安装 Plugin A 以及插件 B,可传递。
这可能吗?如果是这样,怎么做?如果不是,为什么?有没有办法破解这个问题,或者有没有更好的方法来安装插件?
【问题讨论】:
标签:
grails
grails-plugin
grails-2.3
【解决方案1】:
假设插件 A 依赖于插件 B
这意味着您的 Plugin A BuildConfig 将具有:
plugins {
compile ':pluginB:...'
}
当您在应用程序中安装插件 A 时,Grails 也会自动下载并安装插件 B。
对于依赖块也是如此。所以是的,您可以拥有一个依赖于插件列表的插件,并且应用程序将安装所有这些插件。这是在 Grails 中使用插件的默认行为。
相反,如果你想让不得到Plugin C(如果有Plugin A使用的),当Plugin A 在 Grails App 中使用,那么您可以选择性地阻止将 Plugin C 拉入应用程序的传递性。在 Plugin A 的 BuildConfig 中,您可以指定:
plugins {
compile(':pluginC:...') {
//makes sure Plugin C is not available
//when Plugin A is used in the app
export = false
}
}