我正在使用 maven-bundle-plugin 从 Maven 模块创建一个 OSGI 包。
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
<Import-Package>
*
</Import-Package>
<Export-Package>
my.bundle.packages
</Export-Package>
</instructions>
</configuration>
</plugin>
不幸的是,似乎有一个暴露javax.annotation的依赖项。因此,生成的清单包含Import-Package: javax.annotation;version="[3.2,4)"
如何找出哪个依赖项导出了这个包?通过使用mvn dependency:list
,我已经能够排除一些依赖项(com.google.code.findbugs:annotations 和 com.google.code.findbugs:jsr305),但版本范围仍然存在。我一直在查看直接依赖项的清单文件,但没有找到任何其他导出 javax.annotation 的 jar。
注意:我可以向 javax.annotation:com.springsource.javax.annotation 添加一个依赖项,并且 Manifest 将正确导入 javax.annotation 版本 1.0.0,但这不是必需的,我个人认为排除未知的依赖。