Karaf feature:install 抛出不受支持的 'Bundle-ManifestVersion' 值:1

Karaf feature:install throws Unsupported 'Bundle-ManifestVersion' value: 1

我是 Karaf 的新手,正在尝试学习如何处理它。 在途中,我尝试添加 Camunda 功能。 就像 https://github.com/camunda/camunda-bpm-platform-osgi/tree/master/camunda-bpm-karaf-feature

中描述的那样

首先,我添加了 repo:

feature:repo-add mvn:org.camunda.bpm.extension.osgi/camunda-bpm-karaf-feature/4.1.0/xml/features

然后我尝试安装它们;

feature:install camunda-bpm-karaf-feature-full

不幸的是我遇到了这个异常

org.osgi.framework.BundleException: Unable to build resource for mvn:xmlpull/xmlpull/1.1.3.1: Unsupported 'Bundle-ManifestVersion' value: 1
at org.apache.felix.utils.resource.ResourceBuilder.build(ResourceBuilder.java:82)
at org.apache.felix.utils.resource.ResourceBuilder.build(ResourceBuilder.java:67)
at org.apache.karaf.features.internal.region.SubsystemResolver.prepare(SubsystemResolver.java:180)
at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:379)
at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1025)
at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread(FeaturesServiceImpl.java:964)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

Caused by: org.osgi.framework.BundleException: Unsupported 'Bundle-ManifestVersion' value: 1
    at org.apache.felix.utils.resource.ResourceBuilder.doBuild(ResourceBuilder.java:90)
    at org.apache.felix.utils.resource.ResourceBuilder.build(ResourceBuilder.java:80)
    ... 9 more
Error executing command: Unable to build resource for mvn:xmlpull/xmlpull/1.1.3.1: Unsupported 'Bundle-ManifestVersion' value: 1

我使用的是 Karaf 4.2.1 版 有人知道我做错了什么吗?

其中一个功能依赖于 xmlpull 1.1.3.1,它在 MANIFEST.MF 中有 Manifest-Version: 1.0,因此使其成为 OSGi R3 包。

Apache Felix 仅支持符合 OSGi 第 4 版(或更新版本)的捆绑包 (Manifest-Version: 2.0),这就是它拒绝 xmlpull 的原因。请参阅 Felix source 以供参考。

如果您控制源代码,请考虑包装 xmlpull 并从功能中安装包装好的包。您还可以使用 Karaf 控制台;例如,install -s wrap:mvn:xmlpull/xmlpull/1.1.3.1.