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

时间:2015-12-13 13:15:36

标签: java osgi lombok bndtools

我终于将我的应用程序的一部分移动到osgi包中,并在我的宿主应用程序中使用这些包。这非常好用!

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

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

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

我在一些捆绑包中使用了lombok。我只是将它添加到项目属性> java build path>库标签。工作很棒因为lombok是一个用于eclipse编译时的库。但问题是我确实得到了上述警告。

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

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

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

1 个答案:

答案 0 :(得分:4)

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

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

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

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