maven-bundle-plugin包含不存在的依赖项

时间:2019-11-14 15:54:23

标签: maven eclipse-plugin osgi-bundle

我对Eclipse插件项目中的“ maven-bundle-plugin”有疑问。

当我编译项目时,我在Manifest.xml的“导入包”部分上看到了很多Java包导入,这些类导入了很多我的类路径中不存在的包,例如:

Import-Package: 
COM.newmonics.PercClassLoader,
android.os,
bitronix.tm,
bitronix.tm.jndi,
bitronix.tm.resource.common,
bitronix.tm.resource.jdbc,
bitronix.tm.resource.jms,
bsh,
com.arjuna.ats.arjuna.common,
com.arjuna.ats.arjuna.recovery,
com.arjuna.ats.internal.jdbc,
com.arjuna.ats.internal.jta.recovery.arjunacore,
com.arjuna.ats.jbossatx.jta,

所有这些软件包都不存在于我的项目或依赖项中,但是maven-bundle-plugin将其添加到Manifest中,我不知道为什么。有什么想法或建议吗?谢谢。

1 个答案:

答案 0 :(得分:0)

bundle插件为您的项目引用的软件包生成Import-Package。这些是其他捆绑软件应导出的软件包,以便您的捆绑软件可以在运行时使用它们。我的第一个猜测是您的类引用了这些程序包,因此请首先检查您的源代码。

如果您的项目确实没有引用这些软件包,请检查您的pom.xml是否已在插件配置的<Import-Package>指令中指定了这些软件包。也许是从另一个项目复制/粘贴的?

也可能是您在捆绑包中嵌入了引用这些包的依赖项。要找出答案,您可以解压缩jar文件(例如,使用rjar工具),然后递归grep类文件,例如bitronix/tm