Eclipse--关于添加用户库的那些事

      Eclipse作为我们java工程师开发平台的首选,里面有不少提高开发效率的功能,这次我们就来聊一聊添加用户库这一个功能。

      首先表明咱们选用的Eclipse版本Eclipse Java EE IDE for Web Developers.Version: Juno Service Release 2。我现在电脑上用的是Eclipse Java EE IDE,下面的讲解也是以这个版本为准的,不同版本的Eclipse可能会有细微差别,但基本上的功能还是相似的。

      我们回顾一下我们使用用户库的场景:在本地开发工程时,遇到框架搭建需要导入多个关联jar包时,一般会先建立用户库,将集中的jar包放到一个用户库里,然后工程直接关联该用户库即可,可以省去每次导入jar的工作。比如说,我们的项目需要用到spring框架,全部的jar包有21个,我们一般选用其中的某几个就能满足项目需要,我们重现一个添加用户库的过程:

      1、打开Libraries的新建窗口

2、新建一个用户库

Eclipse--关于添加用户库的那些事_第1张图片

3、为用户库添加外部关联的jar包

4、添加完jar后的显示,这里只是描述一下创建用户库的过程,所以就只选了两个jar包用作示例

Eclipse--关于添加用户库的那些事_第2张图片

5、在工程里添加用户库

6、选用户库项(User Library)

Eclipse--关于添加用户库的那些事_第3张图片

7、选中刚刚我们新建的用户库

Eclipse--关于添加用户库的那些事_第4张图片

8、用户库添加到工程时的效果,特别要注意圈圈中的部分(jar包的路径)

Eclipse--关于添加用户库的那些事_第5张图片

 

我们花了比较多篇幅重现新建用户库的过程,这个过程估计大家都习以为常,但这里我会有两个疑问:

1、添加用户库时,会在Eclipse中产生什么文件?或是修改哪个文件以保存我们添加的用户库信息?

2、使用用户库方式的工程进行移植时,会不会造成什么影响?

 

我们先来解答第2个疑问:会造成影响,移植工程时,关联的jar包会提示找不到。原因就是用户库只是指引了jar包文件的位置(就是上一图中我提醒大家要注意的地方),并没有将jar包拷贝至工作空间中,发布或移植工程时,需要拷贝关联的jar包文件,并且要重新关联。所以一般建立用户库只是个人开发方便,在团队开发中,会出现关联jar包同步的问题,其实并不太方便。一般的做法是如果建立的是普通Java工程,就在工程根目录中建立一个lib文件夹,将需要用到的jar包拷贝到该目录下,移植工程时一起拷贝过去,如果是web工程,就把jar包放在web-inf/lib下面即可。这样工程移植时就不会有关联jar包找不到的问题出现,只是这样做会让工程包大一些,不过想想还是值得。

 

现在我们回过头来看看问题1:

我在Eclipse的workspace搜索"myspring"时(上面演示的用户库名字),发现在workspace\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.jdt.core.prefs这个文件下找到以下内容:

org.eclipse.jdt.core.userLibrary.myspring=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<userlibrary systemlibrary\="false" version\="2">\r\n\t<archive path\="E\:/framework/spring-framework-4.0.0.M2/libs/spring-aop-4.0.0.M2.jar"/>\r\n\t<archive path\="E\:/framework/spring-framework-4.0.0.M2/libs/spring-aspects-4.0.0.M2.jar"/>\r\n</userlibrary>\r\n

说明添加的用户库会在这个文件里留下记录。

观察这个文件可知:org.eclipse.jdt.core.prefs是一个properties类型的文档,可知添加了一行我们新建的myspring用户库的信息,该信息是用xml格式保存的,注意看archive节点的path属性,这个就是当初导入外部jar包时的路径,可见用户库确实只是指引了jar包,并没有进行拷贝。移植工程时,若新的环境在相同的路径下没有这个文件,就会报jar包无法找到的错误。

 

 由此可见:

1、由org.eclipse.jdt.core.prefs所在的文件路径(路径以workspace开头)可知,添加用户库行为只能在指定的工作空间(workspace)下有效,切换工作空间会导致用户库无法移植。

2、用户库只是声明了关联jar包的路径,发布工程时,关联的jar包不会一起发布(默认方式不会),并且若关联的jar包的路径发生改变(比如我把jar包剪切到别的路径中去了),也会导致用户库错误。

 

相信各位在开发过程中,类似的问题也遇到过,我个人只是觉得,咱们能对咱们使用的开发平台了解得多一些,更深入一些,开发平台带给我们的生产力才能大一些。以上描述,若有出入,欢迎各位斧正!

 

 

你可能感兴趣的:(eclipse,ide,库)