将非插件项目引用到Eclipse插件项目

7

我能否将一个Eclipse插件项目的引用添加到非插件jar文件中? 这是一个我无法更改的jar文件,因此我必须按原样使用它。

谢谢 Ido

2个回答

2
最安全的方法是从您现有的jar文件创建一个新的插件:
选择“新项目->插件开发->从现有JAR存档中创建插件”
然后选择jar文件(在Galileo上选择“添加外部”),命名项目并填写一些插件属性(可选),选择是否解压缩jar或保持原样。我勾选了复选框...
就这样,Eclipse将自动生成一个插件项目,导出所有包,以便可以在您的插件或rcp项目中使用。

我的插件的每个客户端都有这个jar文件在他的电脑上,我不希望他再拥有另一个副本,因为这个jar文件可能会被第三方更新。 - Ido

1

最简单的方法是将jar文件添加到您的插件中并修改类路径。

将jar文件复制到插件的子目录(例如lib)中,然后修改插件的类路径(在清单编辑器中)以包括插件根目录和lib/foo.jar。

在清单编辑器中,选择运行时选项卡,然后在类路径面板上选择添加按钮。添加jar文件,例如“lib/foo.jar”,然后选择“确定”,如果您查看清单源代码,您应该会看到一行类似于:

Bundle-ClassPath: lib/foo.jar,
 .

如果要让其他插件使用该jar包,您可以配置清单文件以导出嵌套jar包中的包,然后其他插件可以将依赖项添加到包含插件并像正常情况下一样使用它。要这样做,请转到Manifest编辑器的运行时选项卡,在导出的包部分上选择添加..,然后选择要导出的所有包。如果查看清单文件,您应该会看到所有列出的包都像这样:

Export-Package: name.seller.rich,
 name.seller.rich.junit,
 name.seller.rich.foo,
 ...

这是200 MB的JAR文件...我想将其添加为变量。 - Ido
为了让Eclipse使用它,一个jar文件要么需要嵌套在插件中,要么就是一个插件。唯一的替代方案是创建一个自定义类加载器来引用该jar文件,但是你仍然需要定义一种方法来传递该jar文件并确保它在正确的位置。将其添加到插件中并导出所有包要简单得多。 - Rich Seller
这个jar包可能会被更新,而且我的插件的每个用户都会在他们的电脑上拥有它。我不想将它与我的插件一起提供。 - Ido
我已经查看了一下,我认为你没有太多选择:http://wiki.eclipse.org/FAQ_How_can_I_share_a_JAR_among_various_plug-ins%3F - Rich Seller
我看到了一本关于引用打包的有趣书籍: http://book.javanb.com/eclipse-rich-client-platform-designing-coding-and-packaging-java-applications-oct-2005/ch20lev1sec4.html尽管如此,我仍然无法使其正常工作... - Ido

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接