0

我有一棵大树,它使用其他捆绑包。例如:

  • 基本包使用 api 包。
  • api 包是一个纯 api 包
  • 基础包使用api包,是一个库包(有用的库函数,其他包可以使用)
  • api 包导出 api 包
  • 基本包导出基本包。基本包还从 api 包中导出 api 包。

让基础包也导出api包是否正确?

我这样做是因为现在用户只需将基本包添加到他们的构建路径中,并且 bndtools 可以找到基本 + api 包。否则,使用基本包的用户需要弄清楚基本包使用了 api 包,他们需要将其添加到构建路径中。

4

1 回答 1

4

您可以导出 API 包,但必须确保您也导入了这些包。因此,OSGi 框架可以决定它实际连接哪些包。如果在某些时候您有两个包导出相同的包,这很重要。

顺便提一句。通常,您不应导出基本包捆绑包。如果 API 的用户仍然必须知道 impl,那么您不会获得真正的解耦。相反,您可以使用 API 接口将 impl 类导出为服务。

于 2016-02-17T19:01:35.270 回答