导入包解析之间的差异:=可选和完全没有依赖项

  • 本文关键字:依赖 之间 包解析 导入 osgi
  • 更新时间 :
  • 英文 :


我已经仔细阅读了这里的内容,以便在"Import Package"指令中使用可选的解析,但我并不真正理解为什么。此外,可选和完全不指定依赖项之间有什么区别?

如果您根本没有指定导入包,那么您的捆绑包将无法访问该包,即使该包可用并由其他捆绑包导出

如果您有选择地导入包,那么您的捆绑包可以使用它(如果可用),但该包不可用并不妨碍您的捆绑程序的解析。

您应该避免包级别的可选依赖项。要么你依赖一个包裹,要么你不依赖。通常,对可选依赖项的需求表明您的捆绑包的一致性较差,即它在一个模块中做了太多不相关的事情。

如果您说它是可选的,那么如果它是从其他捆绑包导出的,则可能会发生这种情况。如果您根本不导入它,它将永远不可用于捆绑包。那么,你需要它做什么?如果您的捆绑包中确实有一个可选部分,则可以导入可选的依赖项。然而,当你使用时,你必须检查它们是否在那里

如果找不到可选的导入,OSGi不会抱怨,但如果捆绑包使用了根本没有导入的东西,JVM会抱怨。

最新更新