从Maven2到OSGI捆绑

时间:2013-07-02 14:05:44

标签: maven-2 osgi maven-dependency-plugin osgi-bundle maven-bundle-plugin

我想在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上,我无法以任何方式添加。无论如何......我不能手动添加所有包!请问你有什么好主意吗?谢谢

=== UPDATE ===

在导出标记中没有添加任何内容,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 ..

1 个答案:

答案 0 :(得分:0)

此错误表示捆绑包中的内容取决于com.sun.javadoc,例如作为从代码中使用该API的直接结果。您需要找到导出该API的包。

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

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