当使用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要求。
答案 0 :(得分:2)
您需要基于Bnd 4.0的最新版本的maven-bundle-plugin,该版本增加了对Java 10类文件的支持。