1

考虑以下场景。共有三个插件:pluginA、pluginB 和 pluginC。PluginA 依赖于 pluginB 并重新导出它。PluginC 想要使用 pluginB 并且依赖于 pluginA。既然有依赖pluginC -> pluginA -> pluginB,那么pluginC需要添加pluginB作为它的依赖吗?

我相信它不应该。但是,如果我添加直接依赖 pluginC -> pluginB 一切正常,但如果我删除该依赖并只保留 pluginC -> pluginA,那么我会收到错误消息,指出无法找到来自 pluginB 的类。在什么情况下我会收到这些错误?它是否取决于插件的类型(UI 与非 UI)?

谢谢,亚历克斯

4

1 回答 1

3

传递依赖(C 依赖 A 依赖 B)确实有效;我只是测试了一个简单的案例来确定。确保 PluginB 正在导出 PluginC 尝试使用的任何包。如果这不是问题,也许您可​​以使用有关错误的更多详细信息来更新问题。

一般来说,我避免使用重新导出功能,因为它不太明确并且可能引入意外的依赖关系(或者至少是你不知道的依赖关系)。相反,我要么使所有依赖项显式化(PluginC 将直接依赖于 PluginB),要么使用 Imported Packages 代替(它不关心包来自哪个插件,只是它们必须从某个地方可用);它更灵活。

于 2012-08-24T20:43:53.387 回答