带有 lombok 的 Bndtools“包含一个未知容器”

Tin*_*ate 1 java osgi lombok bndtools

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

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

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

Eclipse: The .classpath contains an unknown container: org.eclipse.jdt.USER_LIBRARY/lombok
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

BJ *_*ave 5

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

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

但是,您可以使用-fixupmessagesbnd 文件中的说明删除警告。

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