当使用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需求。