考虑以下方案。有三个插件:pluginA,pluginB和pluginC。 PluginA依赖于pluginB并重新导出它。 PluginC希望利用pluginB并依赖于pluginA。由于存在依赖性pluginC - > pluginA - > pluginB,pluginC需要添加pluginB作为依赖吗?
我相信它不应该。但是,如果我添加直接依赖插件C - > pluginB一切正常,但如果我删除那个依赖,只留下pluginC - > pluginA,然后我收到错误,说明无法找到pluginB中的类。在什么情况下我会得到这些错误?它取决于插件的类型(UI与非UI)吗?
谢谢, 亚历
答案 0 :(得分:3)
传递依赖(C依赖于A取决于B)确实有效;我刚刚测试了一个简单的案例来确定。确保PluginB正在导出PluginC尝试使用的任何包。如果这不是问题,也许您可以更新问题,更详细地了解错误。
通常,我避免使用重新导出功能,因为它不太明确,可能会引入意外的依赖关系(或者至少是您不知道的依赖关系)。相反,我要么使所有依赖项显式(PluginC将直接依赖于PluginB),要么使用Imported Packages(它不关心包来自哪个插件,只是它们必须从某个地方可用);它更灵活。