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