我正在启动一个项目,编写OSGi包,并使用Maven作为构建管理工具。我的理解是对于一个OSGi包,您可以选择您希望保持私有/公共的包。
以下是一个问题:
com.example包声明为导出包并将com.example.internal声明为私有包的包,那么在构建期间是否有任何方法来检测com.example.internal的使用(构建应该失败)?如果Eclipse能够在开发期间检测到这一点,那就太棒了,但我非常怀疑它是否能够检测到。
发布于 2012-06-09 00:13:21
一种选择是使用Eclipse的插件开发环境(PDE),这是一组OSGi感知的工具。它不允许您针对内部包进行编译,因此它提供了开发时检查。与maven的包插件不同,它是清单优先的,而不是代码优先的,这并不是每个人都喜欢的。
要将PDE与Maven集成起来,最好的选择是使用Maven Tycho插件。这为您提供了一个在Maven中完全了解OSGi的编译阶段。
发布于 2013-06-10 07:20:47
在bnd(工具)中,您会发现很多对此的支持。总的来说,我通过查看Import语句找到了这些罪魁祸首,该语句在bndtools中很好地可视化。bnd(tools)支持在导入包没有导入范围时生成警告/错误,这在导入私有或不存在的包时发生。
https://stackoverflow.com/questions/10954288
复制相似问题