【问题标题】:Exporting classes without package in OSGI在 OSGI 中导出没有包的类
【发布时间】:2018-11-09 05:26:37
【问题描述】:

我在 pom.xml 中嵌入了第 3 方 JAR。 JAR 的类很少,它们不属于任何包,但我想使用标签导出这些类。请帮助我如何做同样的事情。

【问题讨论】:

  • 你可以shade他们。但请记住,它们的依赖项也需要携带.. 或者,我认为您可以将该 jar 作为您的依赖项嵌入并将其放入 pom 的导出标签中。
  • 我正在嵌入该 JAR,但不确定如何将类添加到导出标签中,并且我还需要将其添加到导出包标签中。
  • Java 中没有不属于任何包的类。这些类属于默认包,其名称为“”,即空字符串。

标签: maven osgi pom.xml aem


【解决方案1】:

一个 OSGi 包不能导入默认包,所以从你的包中导出它是没有用的。

由于您要导出 API,我假设您有一个或多个其他捆绑包需要使用它。如果您可以控制这些捆绑包,我建议您尝试将自己的 API 包装在您需要提供的类周围。在您自己喜欢的包中创建此 API,并在您的 jar 中使用 Export-Package 标头导出​​该包。另请参阅此 SO 帖子:wrap-third-party-jar-that-imports-from-default-package-using-bndtools

【讨论】:

  • 感谢您的回复!
  • 如果它有帮助并且您能够解决问题,请接受答案,以免其他人浪费时间。如果不是,请添加说明原因的评论,我会尽力澄清。
猜你喜欢
  • 2010-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-08
  • 2017-12-14
  • 1970-01-01
  • 2017-04-07
  • 1970-01-01
相关资源
最近更新 更多