我对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中,我不知道为什么。有什么想法或建议吗?谢谢。
答案 0 :(得分:0)
bundle插件为您的项目引用的软件包生成Import-Package
。这些是其他捆绑软件应导出的软件包,以便您的捆绑软件可以在运行时使用它们。我的第一个猜测是您的类引用了这些程序包,因此请首先检查您的源代码。
如果您的项目确实没有引用这些软件包,请检查您的pom.xml
是否已在插件配置的<Import-Package>
指令中指定了这些软件包。也许是从另一个项目复制/粘贴的?
也可能是您在捆绑包中嵌入了引用这些包的依赖项。要找出答案,您可以解压缩jar文件(例如,使用rjar工具),然后递归grep类文件,例如bitronix/tm
。