4

我正在开始一个编写 OSGi 包并使用 Maven 作为构建管理工具的项目。我的理解是对于 OSGi 捆绑包,您可以选择要保持私有/公开的包。

这是问题:

  • 如果我依赖于将包声明com.example为导出包并声明com.example.internal为私有包的捆绑包,那么在构建期间有什么方法可以检测com.example.internal(构建应该失败)的使用吗?

如果 Eclipse 可以在开发期间检测到这将是很棒的,但我非常怀疑它可以。

4

2 回答 2

4

一种选择是使用 Eclipse 的插件开发环境 (PDE),这是一套支持 OSGi 的工具。它不会让您针对内部包进行编译,因此它为您提供了开发时检查。与 maven 的 bundle 插件不同,它是 manifest-first 而不是 code first,这并不符合每个人的口味。

要将 PDE 与 Maven 集成,最好的办法是使用 Maven Tycho 插件。这在 Maven 中为您提供了一个完全支持 OSGi 的编译阶段。

于 2012-06-09T00:13:21.127 回答
1

在认为你会在 bnd(tools) 中找到很多对此的支持。一般来说,我通过查看 Import-Package 语句来找到这些罪魁祸首,该语句在 bndtools 中很好地可视化。bnd(tools) 支持在导入包没有导入范围时生成警告/错误,当您导入私有或不存在的包时会发生这种情况。

于 2013-06-10T07:20:47.037 回答