maven捆绑插件包含不存在的依赖项



我在Eclipse插件项目中遇到了一个"maven bundle插件"的奇怪问题。

当我编译该项目时,我在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插件将其添加到Manifest中,我不知道为什么。有什么想法或建议吗?谢谢

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

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

也可能是您在bundle jar中嵌入了引用包的依赖项。为了找到答案,您可以解压缩您的jar(例如使用rjar工具(,并递归地grep类文件,例如bitronix/tm

最新更新