【问题标题】:How can I exclude certain packages from the exports with bndwrap如何使用 bndwrap 从导出中排除某些包
【发布时间】:2014-01-14 03:26:52
【问题描述】:

我试图用 ant bndwrap 任务包装的现有 jar 包含来自另一个 jar 的类。我的意思是展开的罐子,而不是嵌入的罐子。

如何在捆绑包的导出包声明中省略这些包?

jar 基本上都有包

org.stuff

org.otherstuff

我只想导出 org.stuff 包,但 bndwrap 会同时包含两者。

【问题讨论】:

    标签: ant osgi bnd


    【解决方案1】:

    如果您在 bnd 文件中使用 Export-Package,您也可以使用“!”来定义排除。

    来自http://www.aqute.biz/Bnd/Bnd的示例:

    Export-Package: !com.acme.impl, com.acme.*;version=1.2
    

    此外,如果您使用包装,-exportcontents 对您来说可能很有趣:http://www.aqute.biz/Bnd/Wrapping:

    "二进制文件和源文件不在最终的 jar 中,但 bnd 还不知道需要导出什么。这可以用 -exportcontents 指令指示。它的语法与 Export-Package 相同,但不复制自类路径,它只将指令应用于最终 JAR 的内容。”

    【讨论】:

    • 单独排除导出是否会删除不需要的导出,但仍会包含自动生成的导出?我不想特别包含导出,因为我不想让 bnd 文件中的版本与 ant 构建保持同步。我宁愿它是从 jar 的现有内容中派生出来的,其中包括一个 bundle 版本。
    • jar的现有内容如何包含bundle版本?在清单中作为 OSGi 标头还是以其他方式?
    猜你喜欢
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    • 2017-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多