带有 lombok 的 Bndtools "contains an unknown container"

Bndtools with lombok "contains an unknown container"

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

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

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

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

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

我在我的本地 bndtools 存储库(存储库视图)中添加了一些外部 jar(带有包信息),然后可以将这些 jar 添加到 bndtools 构建路径,例如 gson。

但是 lombok 似乎没有任何 osgi 包信息,所以将它添加到本地存储库会出现错误 "Jar does not have a symbolic name"。

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

警告意味着虽然 Eclipse 知道由于 lombok 容器而将 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"