【问题标题】:bnd - Make resulted MANIFEST.MF to have one line per Bundle-ClassPath and RequireBundle entriesbnd - 使结果 MANIFEST.MF 每个 Bundle-ClassPath 和 RequireBundle 条目有一行
【发布时间】:2016-04-11 09:51:03
【问题描述】:

使用 OSGi 工具 bnd

如果bnd.bnd文件有

-buildpath: mod.base,\
    mod.common,\
    ...

这些线将作为一条线,虽然包装在 72 药水。 这使得输出更难阅读。

Require-Bundle: mod.base,mod.common,...

如何告诉 bdn 使生成的 MANIFEST.MF 每个 Bundle-ClassPath 和 RequireBundle 条目有一行

【问题讨论】:

    标签: java osgi bnd


    【解决方案1】:

    MANIFEST.MF 格式由 Jar 文件规范定义,并不是特别适合人类阅读。

    您可以使用bnd 命令格式化任何包的清单。从命令行:

    bnd print <filename.jar>
    

    这将以漂亮的布局打印导入和导出以及使用约束。

    顺便说一句...不要使用Require-Bundle

    【讨论】:

    • Require-Bundle 条目是从 bnd.bnd 生成的 -buildpath Require-Bundle 有什么问题?
    • 目前 bnd 命令行安装是不可能的,提出了问题github.com/bndtools/bnd.manual/issues/33
    • Require-Bundle 不是由 bnd 生成的...永远
    • 正如彼得所说,bnd 不会生成Require-Bundle。有关 Require-Bundle 的问题的信息,请阅读 OSGi Core R6 规范,第 3.13.3 节“需要捆绑的问题”。
    【解决方案2】:

    正如我在 bnd 的源代码中看到的那样,它创建了一个 java.util.jar.Manifest 对象。输出的格式以Java提供的Manifest类的代码为准。

    当我想阅读 OSGi 标头时,我使用在线工具:https://robinst.github.io/jar-manifest-formatter/

    虽然这不会格式化 Require-Bundle、Provide-Capability 和 Require-Capability 标头,但我认为您更改 javascript 文件以对其进行格式化也不会花费超过 10 分钟的时间。如果你这样做,我建议你应该为 robinst 发送 PR ;)。

    更新:它已经可以了,感谢 Robin

    【讨论】:

      猜你喜欢
      • 2015-01-18
      • 1970-01-01
      • 2019-01-10
      • 2021-07-25
      • 2011-06-28
      • 1970-01-01
      • 1970-01-01
      • 2011-06-18
      • 2019-12-13
      相关资源
      最近更新 更多