除了Maven,还有一种解决jar包管理及定制的好方法
来源:互联网 发布:淘宝产品标题优化 编辑:程序博客网 时间:2024/06/05 09:56
【我的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”,说明设置效果基本达到。
- 除了Maven,还有一种解决jar包管理及定制的好方法
- 关于maven项目jar包的版本管理方法
- maven管理jar包后依然找不到Jar包或者ClassNotFound的解决
- maven管理jar包后依然找不到Jar包或者ClassNotFound的解决
- 由maven依赖的jar包有误导致tomcat运行报错的一种解决思路
- maven管理jar包和传统方法管理jar的比较
- 今天搞的一个查询语句(别人帮我解决的)还有什么好方法吗?(除了存储过程,只求裸奔)
- Maven管理Spring的jar包
- osgi 和 maven jar包的管理
- Maven 的jar包冲突管理
- Idea的.jar包maven管理项目
- 使用Maven管理引用的jar包
- 怎么解决maven管理jar包冲突问题
- 下载JAR包的几个好方法
- 寻找jar包的好方法
- maven 引入外部jar包的方法
- maven添加jar包的方法
- maven项目里添加非maven管理的jar包
- You have a maze with obstacles and non-zero digits in it
- HTML-CSS-JS Prettify 格式参数设置
- head命令
- final数据
- Android selector中的属性浅析
- 除了Maven,还有一种解决jar包管理及定制的好方法
- Ubuntu环境下使用g++编译cpp文件
- [iOS]数据库第三方框架FMDB详细讲解
- Python容器的数据类型 (python2)
- 数字三角形问题
- dcos master挂掉后 slave上面的container会咋样
- Android开发-基本概念小整理(四)为了面试的小伙伴们所准备~~
- [leetcode]217. Contains Duplicate
- Android service 简单介绍