除了Maven,还有一种解决jar包管理及定制的好方法
【我的SegmentFault原文】https://segmentfault.com/a/1190000007721071
使用过Maven的小伙伴都知道,必须新建Maven Project才能使用它,效果如下:
对于新手,上手还是有点难度的。同时对于个人开发的小项目(多而杂),建立一个属于自己的Repository解决jar共用和定制化加载需求,也是很有必要。探寻中,个人寻找到一个比较折中的解决办法,供大家参考使用
一、Java Build Path的Libraries
1、常见的Libraries
JRE System Library:指Java SE 的常用库文件集合,建立普通的Java项目均会使用;
Java EE 6 Libraries:指Java EE的常用库文件的集合,建立Web项目会用到这个库集合与Java SE的库文件集合;
Referenced Libraries: 指你项目中所使用的第三方库文件集合。如果你把项目所需要的其他JAR包直接加在项目->属性->Java Build Path -> Libraries 中的时候,MyEclipse 会自动将这些JAR包归类到一个集合中, 并取名为 Referenced Libraries,显示在项目中;
Web App Libraries:一般为Web Project专有的库文件集合,自动加载管理项目的WEB-INF/lib目录下jar包;
Maven Dependencies:Maven Project专有的库文件集合,通过读取pom.xml配置文件从MavenRepository加载相应的jar包;
2、Libraries的Add方法
Add Jars...:添加JAR包,是指本Eclipse当前包含的工程中的,在工程列表下选取即可;
Add External Jars...:添加外部的JAR,是指外部的,需要用文件管理器,在电脑硬盘上选取;
Add Variable...:添加变量,Eclipse的编译时用到的的环境变量;
Add Library...:添加库,是指一些已经定义好的jar的集合,因为它们经常是一起用,比如JRE System Library和Java EE 6 Libraries;
Add Class Folder...:添加类的目录,是指本Eclipse范围中的,在工程列表下选取接口;
Add External Folder...:添外部加类的目录,需要用文件管理器,在电脑硬盘上选取;
二、.classpath文件
.classpath实际是一个XML格式的配置文件,<classpath>... ...</classpath>这个标签中存放的便是classpath的信息,它一般包含以下五种形式:
1.<classpathentry kind="src" path="src"/>:指定source folder类型的目录,kind="src"表示这个classpath的类型,path表示在项目中的路径,path使用根目录的相对路径(相对.classpath文件本身的相对路径)
2、<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">:指定程序的JRE运行环境,kind="con"表示classpath的类型,con即是Container,就是程序运行的容器,或者就说是运行环境
3、<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>:指定程序运行时的容器,一般情况下是java web项目才会有,它是包含了J2EE服务器要使用到的一些jar包, 这句是kind="con"当然和上条一样,是表示运行时的容器
4.<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/bsf-2.3.0.jar"/>:指定第三方jar包加载的路径,kind="lib"表示classpath中的库文件,path指定库文件的路径,同样是相对与项目根目录的相对路径
5、<classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>:指定项目的编译输出目录,在java web中也就是WebRoot/WEB-INF/classes,同样使用的path是相对项目根目录的相对路径(相对.classpath文件本身的相对路径)
三、Eclipse设置内容
1、设置实现的效果
通过设置主要解决以下几个问题:
1)同一个jar包在各项目中复用
2)jar包在各项目中自定义加载
3)workspace或电脑更换,不影响项目导入使用
4)方便通过配置文件批量快速加载jar包
2、设置步骤
-
【步骤1】
在workspace下建一个文件夹,,把jar包分类放在该文件夹里面
-
【步骤2】
右击项目-Properties-Java Build Path-Libraries-选择“Add Variable...”
-
【步骤3】
弹出对话框“New Variable Classpath Entry”,点击“Configure Variables...”
-
【步骤4】
定义新的Classpath Variable,可以理解为指定类加载库并设置一个变量名称,方便在.classpath文件中调用,有点像Java里接口的概念
(这是我设置的效果图,定义了一个JARs Libraries库)
-
【步骤5】
根据项目的需要,在.classpath文件中快速配置需要加载的jar包。如果自己的Repository里还有多级目录分类,一个一个查看jar的路径再配置就有点麻烦,个人推荐一个小技巧演示如下:(适合将已有的项目改变jar包加载方式)
1)先使用“Add Jars...”方式把需要jar包加载,然后查看.classpath文件(用鼠标选择速度还是快点)
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
<classpathentry kind="lib" path="D:/myeclipse/JARs Libraries/commons-lang-2.3.jar"/>
<classpathentry kind="lib" path="D:/myeclipse/JARs Libraries/commons-lang3-3.4.jar"/>
<classpathentry kind="lib" path="D:/myeclipse/JARs Libraries/date4j.jar"/>
<classpathentry kind="lib" path="D:/myeclipse/JARs Libraries/javaee.jar"/>
<classpathentry kind="lib" path="D:/myeclipse/JARs Libraries/nl.captcha.simplecaptcha-1.1.1.jar"/>
<classpathentry kind="lib" path="D:/myeclipse/JARs Libraries/oscore-2.2.2.jar"/>
<classpathentry kind="lib" path="D:/myeclipse/JARs Libraries/slf4j-api-1.7.21.jar"/>
<classpathentry kind="lib" path="D:/myeclipse/JARs Libraries/xwork-2.1.2.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
2)进行文本内容替换操作
(替换内容)
kind="lib" ->> kind="var"
D:/myeclipse/JARs Libraries ->> JARs Libraries
(替换效果)
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
<classpathentry kind="var" path="JARs Libraries/dom4j/dom4j-1.6.1.jar"/>
<classpathentry kind="var" path="JARs Libraries/dom4j/jaxen-1.1-beta-6.jar"/>
<classpathentry kind="var" path="JARs Libraries/commons-lang-2.3.jar"/>
<classpathentry kind="var" path="JARs Libraries/commons-lang3-3.4.jar"/>
<classpathentry kind="var" path="JARs Libraries/date4j.jar"/>
<classpathentry kind="var" path="JARs Libraries/javaee.jar"/>
<classpathentry kind="var" path="JARs Libraries/nl.captcha.simplecaptcha-1.1.1.jar"/>
<classpathentry kind="var" path="JARs Libraries/oscore-2.2.2.jar"/>
<classpathentry kind="var" path="JARs Libraries/slf4j-api-1.7.21.jar"/>
<classpathentry kind="var" path="JARs Libraries/xwork-2.1.2.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
-
【步骤6】
设置完成,刷新项目,发现“Referenced Libraries”下面加载的jar包路径信息显示“JARs Libraries”,说明设置效果基本达到。