【发布时间】:2012-09-08 21:11:06
【问题描述】:
<dependencies> 标签和<Import-Package> 标签中提到的捆绑包之间有什么关系吗?我的意思是如果我们不定义依赖,那么maven-bundle-plugin在<Import-Package>标签中找不到包?
【问题讨论】:
标签: maven osgi maven-bundle-plugin
<dependencies> 标签和<Import-Package> 标签中提到的捆绑包之间有什么关系吗?我的意思是如果我们不定义依赖,那么maven-bundle-plugin在<Import-Package>标签中找不到包?
【问题讨论】:
标签: maven osgi maven-bundle-plugin
Maven 使用依赖项部分中列出的 jars 来创建类路径。这个类路径被 bnd(maven bundle 插件中的引擎)用来通过字节码分析来分析你的代码所指的内容。
maven dependency -> classpath -> bnd analysis -> import statements
【讨论】:
Import-Package 用于细化 maven bundle 插件自动为您生成的包导入列表。例如,您可以声明一些可选的导入,或者为只能通过反射访问的类添加导入。在大多数情况下,根本不需要为 Import-Package 指定任何内容,因为默认值为 * - 也就是说,将导入字节码中引用的任何外部包。
dependencies 部分提供了编译器用来生成字节码的包池,以及用于改进包导入的 bnd(这是包插件的内容)。例如,它将根据依赖项列表(或传递依赖项)中提供包中的导出版本添加版本范围。
【讨论】: