如何在插件开发中正确使用nexus 添加第三方jarr包

如何在Eclipse RCP中使用第三方包(图) - 淘沙——希望沉淀下金子 - ITeye技术网站
博客分类:
这两天一直被在Eclipse插件项目中导入第三方包的问题所困扰啊,我在项目中使用了dom4j的第三方包,可是在插件运行是一直报“noClassDefFound”的错误,在网上找了些文档解决的方式也不明了,这篇文章图文并茂,适合我这个初学者,所以转过来了。
另外,好像这种方法在往其他人的机器上发布时还得从新配路径(看到有人提出这个问题,自己还没实验:P)。还有人提出可以把导入的第三方包做成插件,直接在depends里面添加插件引用即可。(这个方法我试了,但是有不少错误,还得在试试,也欢迎有成功者介绍经验啊!)
我们拿一个简单的示例来说明,这个示例使用的是eclipse rcp的template中最简单的一个,也就是大家都见过的Hello,RCP。我用的eclipse版本是3.2M2。    为了便于说明,我自己写了一个java文件然后打包成jar,再在rcp程序中调用它。这个程序是这样的:    Code:      public class Hello {  public static String sayHello()   {  return "hello,world";  }  }  [Ctrl+A Select All]    就这么简单,打包后做成一个hello.jar。具体过程略去不谈。    然后我们新建一个rcp application,具体过程也略去不谈。这里需要提醒大家的是rcp工程的名字最好用小写英文,用大写的话可能会出一些问题,至少在我用的这个版本是这样。    建好以后在下面新建一个lib目录作为存放第三方库的目录。再把前面做好的hello.jar拷贝过去。参见下图。我们拿一个简单的示例来说明,这个示例使用的是eclipse rcp的template中最简单的一个,也就是大家都见过的Hello,RCP。我用的eclipse版本是3.2M2。    为了便于说明,我自己写了一个java文件然后打包成jar,再在rcp程序中调用它。这个程序是这样的:    Code:      public class Hello {  public static String sayHello()  {  return "hello,world";  }  }  [Ctrl+A Select All]    就这么简单,打包后做成一个hello.jar。具体过程略去不谈。    然后我们新建一个rcp application,具体过程也略去不谈。这里需要提醒大家的是rcp工程的名字最好用小写英文,用大写的话可能会出一些问题,至少在我用的这个版本是这样。    建好以后在下面新建一个lib目录作为存放第三方库的目录。再把前面做好的hello.jar拷贝过去。参见下图。我们拿一个简单的示例来说明,这个示例使用的是eclipse rcp的template中最简单的一个,也就是大家都见过的Hello,RCP。我用的eclipse版本是3.2M2。    为了便于说明,我自己写了一个java文件然后打包成jar,再在rcp程序中调用它。这个程序是这样的:    Code:      public class Hello {  public static String sayHello()  {  return "hello,world";  }  }  [Ctrl+A Select All]    就这么简单,打包后做成一个hello.jar。具体过程略去不谈。    然后我们新建一个rcp application,具体过程也略去不谈。这里需要提醒大家的是rcp工程的名字最好用小写英文,用大写的话可能会出一些问题,至少在我用的这个版本是这样。    建好以后在下面新建一个lib目录作为存放第三方库的目录。再把前面做好的hello.jar拷贝过去。参见下图。
在RCP工程中,你可以有两种办法把jar加入到class path中,你可以任选一种:    1、和普通的工程一样,加入到build path里面,参见下面图二。
2、打开plugin的Build页面,注意到最下面有个“Extra Classpath Entries”了么?展开以后选Add Jars把需要
的jar加进去,有同样的效果,参见图3
我在这里说“任选一种”的意思是不要两种办法同时用,否则工程会报错。
在上面的工作都做完之后,仍然在plugin的Build页面上,左边的Binary Build下面把你程序的输出目录(我的工程里面是bin)和你的jar所在的目录(我的工程里面是lib)打勾,这样输出时候会包含你编译后的文件以及第三方库。仍然参照第三张图    然后切换到plugin的Runtime页面,在右下角的Classpath里面把你程序的输出目录(我的程序里面是bin)和你所有要包含的jar文件(我的程序里面是lib/hello.jar)都加进去。参照图4,这样就基本上完成了。
之后所要做的事情就是修改程序了,我在这里只是简单地把程序的标题做了修改,找到ApplicationWorkbenchWindowAdvisor这个类,把preWindowOpen修改成下面这样:    Code:    public void preWindowOpen() {  IWorkbenchWindowConfigurer configurer = getWindowConfigurer();  configurer.setInitialSize(new Point(400, 300));  configurer.setShowCoolBar(false);  configurer.setShowStatusLine(false);  configurer.setTitle(Hello.sayHello());  }  [Ctrl+A Select All]    这个示例就完成了,之后产生product文件后export出来就可以看到结果了。过程也略去不谈。    运行以后会发现标题栏从“Hello,RCP”变成了“hello,world”,参见第图五。
RCP实践之第三方JAR包 写道
感谢大家对上一篇文章的拍砖,引起的反响不小,目的达到了~,希望可以继续板儿砖横飞!
今天来说说第三方JAR包的引入。RCP开发(或者plugin开发)中最让人头疼就是第三方JAR包的引入了,很多初学的朋友常常头疼,介绍的文章也不少了,如果搞不定,自己google一下就可以了。
为什么第三方JAR包会引发如此众多的问题,其实并不是Eclipse的错,而是先入为主的错。如果你一开始就就接触Eclipse开发,以后再做不同java开发,你就会觉得java的类加载机制是变态了~Eclipse的类加载机制是基于OGSI的实现,它完成了插件的独立加载和独立维护,正是因为这种变态的类加载机制,才有了我们头大的第三方jar包的问题,也正是这种伟大的类加载机制,才有了即插即用的思路的诞生。
大多数简单的RCP项目都是将所有的JAR包放入本地项目中,然后直接进引入项目路径,就开始整了,对于小的应用,或者开发人员少的情况下,这样是可行的,也是便捷的~但是RCP的目标是大型的企业级应用,一个系统由十几个,几十个插件组成,是很正常的。所以就要求我们将RCP中所有用到的第三方JAR包统一管理,统一维护,给开发人员少一些烦恼。 思路有两种:
1.将JAR文件plugin样子包装,及新建Plug-in from existing jar archives 项目,然后选择JAR文件,再取消Unzip the jar archives into the project 选项,然后其它的插件依赖它就可以了。
2.新建一个不同插件项目,然后把第三方JAR包放入这个项目,然后引入到此项目中,在plugin.xml的runtime配置页的Exported Packages 选Add... 再选择要发布出去的包路径,然后其他的插件依赖它就可以了。
官方推荐的方式是第一种,个人认为第一种确实很好,可以非常好而且方便的维护第三方JAR包。但是我还是选择了第二种方式,理由是,配置文件读取的问题。
每一个插件文件都会维护一份属于自己的配置文件,只有这样才能做到自我独立。但是这两种方式都不能使其他插件项目的配置文件独立维护,原因就是Eclipse那讨厌又强大的类加载机制。
使用第一种方式,配置文件必须放在你记载的进来的JAR包的里面,这样Eclipse类加载机才会加载并处理,除非选择了Unzip the jar archives into the project 选项,并把配置文件和一堆的class文件放在同一目录下类加载机才能发现。我想这种方式谁都不会喜欢,要么就是我们要创造自己的JAR包,要么工作台遍布了各种各样来自世界各地的class文件。
使用第二种方式,是通过运行时将需要发布出来供别人依赖的package发布出来,而配置文件则需要放在此插件项目中。相对而言,这种比上一种有很大的好处,而且也不是那么难维护。
以上只是自己项目中的一些总结,关于第三方JAR包的问题,我查了很多资料,好像逃不过这三种方式(直接在项目中依赖算一种),不知道各位大侠还有没有更好的办法,即能处理好第三方JAR包,又能保持各个插件维护自己独立的配置文件? 转载自
浏览: 33858 次
来自: 北京
看完!上下了! 真纠结~
lggege 写道
EMF 我还不会呢, 一直也只是知道, 看 ...
EMF 我还不会呢, 一直也只是知道, 看来要用EMF来建模, ...&&&&第三方jar包打包工具(Eclipse插件)
第三方jar包打包工具(Eclipse插件)
Java项目中含有很多引入的第三方jar包的时候
如果使用编辑器自带的打包工具,可能需要比较麻烦的处理,才能把第三方jar包打进去,此打包工具为“富打包”工具,能囊括所有的第三方jar包,一步到位。
使用说明:将此包下载后放入eclipse下的plugins底下,重启eclipse之后,右击项目名称选择build fat jar,按照向导即可完成打包。
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
免积分&&极速下载60元/年(1200次)
您可能还需要
移动开发下载排行如何在插件开发中正确使用第三方jar包_百度知道
如何在插件开发中正确使用第三方jar包
提问者采纳
 解决程  般插件项目添加第三jar包:  1. 创建插件项目并新建文件夹放置需要第三jar包:&project&/lib  2. 文件系统导入或拷贝jar包至&project&/lib文件夹:&project&/lib/activation.jar  3. 打MANIFEST.MF文件插件编辑器&Runtime&Tab页第三jar包添加&Classpath&面板  haha@sh 201104月21 13:46  4. 该插件需要其插件依赖则需要插件编辑器&Runtime&Tab页&Exported Packages&面板添加所允许访问包
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 nexus 上传第三方jar 的文章

 

随机推荐