Maven Bundle插件添加所需功能:osgi.ee;过滤器:=";(“osgi.ee=JavaSE)(version=9.0))”;

Maven Bundle插件添加所需功能:osgi.ee;过滤器:=";(“osgi.ee=JavaSE)(version=9.0))”;,maven,apache-karaf,openapi-generator,maven-bundle-plugin,Maven,Apache Karaf,Openapi Generator,Maven Bundle Plugin,我正试图在Karaf中部署OpenAPI生成的代码 卡拉夫说我需要: javax.annotation.meta;version="[3.0,4)" javax.xml.bind.annotation;version="[2.3,3)" 我使用Java1.8来编译和运行代码 我正在使用maven bundle插件v3.5.1 无论我做什么,我最终都会在MANIFEST.MF中看到这一行 Require-Capability: osgi.ee;filter

我正试图在Karaf中部署OpenAPI生成的代码

卡拉夫说我需要:

javax.annotation.meta;version="[3.0,4)"
javax.xml.bind.annotation;version="[2.3,3)"
我使用Java1.8来编译和运行代码

我正在使用
maven bundle插件
v3.5.1

无论我做什么,我最终都会在MANIFEST.MF中看到这一行

Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=9.0))"
我认为这可能是问题的根源

有没有办法强制要求使用Java 8的功能?
或者更好的解决方法?

bndtools(由maven bundle插件使用)扫描类路径上的所有类,并跟踪类文件的版本。
这是默认行为,您可以在maven bundle插件配置中使用true指令覆盖它

您确定要使用java 1.8进行编译吗?bndtools(由maven bundle插件使用)扫描类路径上的所有类,并跟踪类文件的版本。这是默认行为,您可以在maven bundle插件配置中使用true指令覆盖它。谢谢,它没有修复它,但有一个向上投票权。我最终通过使用CLI为CXF+Jackson生成POJO和API文件来解决这个问题。noee仍然生成Java9需求。这个问题似乎与OkHttp+Gson依赖性有关,但我没有时间进一步研究。无论如何,CXF+Jackson可能更简单、更可靠。