maven-bundle-plugin如何在Import-Package中查找包

时间:2012-09-16 09:50:05

标签: maven osgi maven-bundle-plugin

<dependencies>标记和<Import-Package>标记中提到的捆绑包之间是否存在任何关系?我的意思是如果我们不定义依赖,那么maven-bundle-plugin无法在<Import-Package>标签中找到包?

2 个答案:

答案 0 :(得分:4)

Maven使用依赖项部分中列出的jar来创建类路径。 bnd(maven bundle插件中的引擎)使用此类路径来分析代码通过字节代码分析引用的内容。

 maven dependency -> classpath -> bnd analysis -> import statements

答案 1 :(得分:2)

Import-Package用于优化maven bundle插件自动为您生成的包导入列表。例如,您可以声明某些导入是可选的,或者为只能通过反射访问的类添加导入。在大多数情况下,没有必要为Import-Package指定任何内容,因为默认值为* - 也就是说,将导入字节码中引用的任何外部包。

dependencies部分提供编译器生成字节码所使用的包池,以及bnd(这是封装下的bundle插件)以改进包导入。例如,它将根据依赖项列表(或传递依赖项)中的提供包中的导出版本添加版本范围。