【发布时间】:2013-12-03 13:23:03
【问题描述】:
我已仔细阅读here 以使用“Import-Package”指令中的可选分辨率,但我并不真正理解为什么。另外可选和完全不指定依赖有什么区别?
【问题讨论】:
-
该链接似乎已过期。有更新的链接吗?
标签: osgi
我已仔细阅读here 以使用“Import-Package”指令中的可选分辨率,但我并不真正理解为什么。另外可选和完全不指定依赖有什么区别?
【问题讨论】:
标签: osgi
如果您根本没有指定 Import-Package,那么您的捆绑包将无法访问该包即使它可用并被其他捆绑包导出。
如果您选择导入包,那么您的包可以使用它(如果可用),但该包不可用并不会阻止您的包的解析。
您应该避免包级别的可选依赖项。要么你依赖一个包,要么你不依赖。通常,对可选依赖项的需求表明你的包的一致性很差,即它在一个模块中做了太多不相关的事情。
【讨论】:
如果你说它是可选的,那么如果它是从其他捆绑包中导出的,它可能会发生。如果您根本不导入它,它将永远无法用于捆绑。 那么,你需要它做什么? 如果您的包中确实有可选部分,则可以导入可选依赖项。但是,您必须在使用时检查它们是否存在。
如果找不到可选的导入,OSGi 不会抱怨,但如果你的 bundle 使用了根本没有导入的东西,JVM 会抱怨。
【讨论】: