【问题标题】:Bndtools with lombok "contains an unknown container"带有 lombok 的 Bndtools“包含未知容器”
【发布时间】:2016-03-19 00:21:45
【问题描述】:

我终于完成了将我的应用程序的一部分移动到 osgi 包中并在我的主机应用程序中使用这些包。这真的很好用!

目前我正在使用 bndtools 清理我的 eclipse 工作区并消除警告。

我无法摆脱的一个警告是:

Eclipse: The .classpath contains an unknown container: org.eclipse.jdt.USER_LIBRARY/lombok

我在一些捆绑包中使用了 lombok。我只是将它添加到项目属性 > java 构建路径 > 库选项卡中。很好用,因为 lombok 是 Eclipse 中用于编译时间的库。但这里的问题是我确实收到了上述警告。

我向本地 bndtools 存储库(存储库视图)添加了一些外部 jars(带有捆绑信息),然后可以将 jars 添加到 bndtools 构建路径,例如 gson。

但 lombok 似乎没有任何 osgi 捆绑信息,因此将其添加到本地存储库会给我一个错误“Jar 没有符号名称”。

当然,我可以编辑 lombok.jar 并添加捆绑信息。但我想知道是否有更清洁的方法来做到这一点?

【问题讨论】:

    标签: java osgi lombok bndtools


    【解决方案1】:

    警告意味着,虽然由于 lombok 容器,Eclipse 知道要放在编译路径上的 jar,但离线构建(例如 gradle)现在无法知道要放在类路径上的 jar。因此,警告表明在 Eclipse 中构建和在 Eclipse 之外构建之间存在保真度问题。

    将所有编译jar放在项目的bnd.bnd文件的-buildpath指令中意味着Eclipse和非Eclipse构建之间的保真度。

    但是,您可以使用 bnd 文件中的 -fixupmessages 指令删除警告。

    -fixupmessages: "Eclipse: The .classpath contains an unknown container: org.eclipse.jdt.USER_LIBRARY/lombok"

    【讨论】:

    • 感谢@BJ Hargrave 为整个工作区提供的没有警告! fixupmessages 配置选项成功了。
    猜你喜欢
    • 2011-03-02
    • 1970-01-01
    • 2012-12-26
    • 1970-01-01
    • 2016-03-20
    • 2012-11-25
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    相关资源
    最近更新 更多