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