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项目)在我的一个捆绑包(Maven
eclipse 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中。