Maven-bundle-plugin: osgi.ee=UNKNOWN

8

当使用JDK 10构建我的OSGi捆绑包时,maven-bundle-plugin(3.5.1)会生成以下清单属性:

Require-Capability: osgi.ee;filter:="(osgi.ee=UNKNOWN)"

这会在运行时失败:

Unresolved requirements: [[com.mycompany.mybundle [1](R 1.0)] osgi.ee; (osgi.ee=UNKNOWN)]

在使用JDK 9构建时,我得到了预期的结果:

Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=9.0))"

我将maven-compiler-plugin的源版本和目标版本分别设置为'1.9'和'10'。
目前,我使用了一种解决方法来阻止插件向清单中添加osgi.ee
<configuration>
  <instructions>
      <_noee>true</_noee>
  </instructions>
</configuration>

但我更希望满足正确的Java 10需求。

1个回答

10
您需要使用基于Bnd 4.0的更高版本的maven-bundle-plugin,该版本支持Java 10类文件。

2
事实证明,截至今天可用的最新版本的maven-bundle-plugin是3.5.1,它仅基于Bnd 3.5。因此,您需要让maven-bundle-plugin的开发人员进行更新。或者,您可以从Bnd团队迁移到bnd-maven-plugin。但请注意,它的配置和操作方式与maven-bundle-plugin不同。 - BJ Hargrave
1
谢谢,我创建了https://issues.apache.org/jira/browse/FELIX-5879来跟进Felix团队。 - gjoranv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接