我终于完成了将应用程序的一部分移动到osgi捆绑包中,并在主机应用程序中使用这些捆绑包。这真的很好用!
目前,我正在用bndtools清理eclipse工作区,并消除警告。
我无法摆脱的一个警告是:
Eclipse: The .classpath contains an unknown container: org.eclipse.jdt.USER_LIBRARY/lombok
我在一些包里用了lombok。我只是简单地将它添加到项目属性>java构建路径>库选项卡中。非常有效的原因是lombok是eclipse中用于编译时的库。但问题是,我确实收到了上述警告。
我在本地bndtools存储库(存储库视图)中添加了一些外部jar(带有bundle信息),然后可以将这些jar添加到bndtools-build路径中,例如gson。
但是lombok似乎没有任何osgi捆绑包信息,所以将其添加到本地存储库会给我一个错误"Jar没有符号名称"。
当然,我可以编辑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"