0

我想在 OSGI 包中转换一个 Maven2 项目。我正在尝试使用应该根据 maven 依赖项创建清单的maven-bundle-plugin 。问题是我无法让它工作。当我安装并运行生成的包时,总是会出现如下错误:

org.osgi.framework.BundleException: The bundle "My_OSGI_Bundle" could not be resolved. Reason: Missing Constraint: Import-Package: com.sun.javadoc;

每次我在 maven-bundle-plugin 中手动添加缺少的约束。但总是有另一个缺失的约束。现在我被困在无法以任何方式添加的 com.sun.javadoc 上。无论如何...我不能手动添加所有的包!请问你有更好的主意吗?谢谢

===更新===

没有在导出标签中添加任何内容,运行 bundle 给我的第一个错误是:

org.osgi.framework.BundleException: The bundle "Partes_0.1.0.SNAPSHOT [55]" could not be resolved. 
Reason:Missing Constraint: Import-Package: com.eviware.soapui.config; version="0.0.0" at
org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolverError(AbstractBundle.java:1327) at 
org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolutionFailureException(AbstractBundle.java:1311) at ..
4

1 回答 1

0

此错误意味着您的包中的某些内容依赖于com.sun.javadoc,例如作为从您的代码中使用该 API 的直接结果。您需要找到一个导出该 API 的包。

您现在可能会声明您实际上并未使用com.sun.javadoc. 我相信您可能已经将大量额外的第三方依赖项拖入您的捆绑包中……“每次我手动添加缺少的约束”这句话都会敲响警钟!所以依赖关系可能存在于你的包中根本不应该存在的东西中。

最好的办法是在开始向捆绑包中添加随机位之前回到开始,以试图解决问题。也就是说,确保你的包只包含你的代码。然后找出缺少的导入是什么,并找到一个导出它的包。

于 2013-07-02T15:36:48.010 回答