Eclipse plugin Eclipse插件中未解析导出的包
我正在通过项目的目标平台定义(即另一个带有Eclipse plugin Eclipse插件中未解析导出的包,eclipse-plugin,slf4j,osgi-bundle,logback-classic,Eclipse Plugin,Slf4j,Osgi Bundle,Logback Classic,我正在通过项目的目标平台定义(即另一个带有eclipse目标定义的Maven项目)在我的一个捆绑包(Maveneclipse plugin)中使用和 slf4j apiJAR的MANIFEST.MF包含: ... Import-Package: org.slf4j.impl;version=1.6.0 ... Export-Package: ... ....................., org.slf4j.impl;versi on="1.7.25";uses:
eclipse目标定义的Maven项目)在我的一个捆绑包(Maveneclipse plugin
)中使用和
slf4j api
JAR的MANIFEST.MF
包含:
...
Import-Package: org.slf4j.impl;version=1.6.0
...
Export-Package: ...
....................., org.slf4j.impl;versi
on="1.7.25";uses:="org.slf4j,org.slf4j.spi"
...
...
Export-Package: org.slf4j.impl;x-internal:=true;version="1.7.30";uses:
="org.slf4j,org.slf4j.spi"
...
logbackclassic
JAR还包含包org.slf4j.impl
,其MANIFEST.MF
包含:
...
Import-Package: org.slf4j.impl;version=1.6.0
...
Export-Package: ...
....................., org.slf4j.impl;versi
on="1.7.25";uses:="org.slf4j,org.slf4j.spi"
...
...
Export-Package: org.slf4j.impl;x-internal:=true;version="1.7.30";uses:
="org.slf4j,org.slf4j.spi"
...
如果我加上:
Import-Package: ...
...
org.slf4j,
ch.qos.logback.classic,
org.slf4j.impl
到我的包的清单。MF`只有前两个被解决。对于后者,Eclipse显示错误:
捆绑包'ch.qos.logback.slf4j'导出包'org.slf4j.impl'未解析
我的包的插件依赖项文件夹中的ch.qos.logback.classic_1.2.3.v220200428-2012.jar
仅显示ch.qos.logback.classic
包及其子包
主要问题:
为什么org.slf4j.impl
未被视为导出,因此无法解决
次要问题:
错误消息中的捆绑符号name
来自何处
目标平台定义中logback classic
的JAR的限定符v20200428-2012
来自哪里?它是MANIFEST.MF
不包含这个,只是Bundle版本:1.2.3
为什么slf4j api
导入org.slf4j.impl
?不应该依赖API实现,反之亦然
更新
我找到了答案2。三,。(这不是第一次在写SO问题时发生:):它来自Eclipse本身:
这也引出了1的答案:我实际上没有使用原始slf4j
和logback
JAR,而是使用Eclipse和ch.qos.logback.slf4j
的MANIFEST.MF
包含:
...
Import-Package: org.slf4j.impl;version=1.6.0
...
Export-Package: ...
....................., org.slf4j.impl;versi
on="1.7.25";uses:="org.slf4j,org.slf4j.spi"
...
...
Export-Package: org.slf4j.impl;x-internal:=true;version="1.7.30";uses:
="org.slf4j,org.slf4j.spi"
...
所以5。如何让包org.slf4j.impl
导出/导入?请改进您的问题,而不是添加更新部分,并提供一个最小的可复制示例。slf4j的目标之一不是不直接与实现对话吗?@nitind这也是我的想法。它一直是,但仍然在v1.7.x中。