Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 394|回复: 0

除了Maven,还有一种解决jar包管理及定制的好方法

[复制链接]
  • TA的每日心情
    奋斗
    2024-9-22 15:19
  • 签到天数: 795 天

    [LV.10]以坛为家III

    2050

    主题

    2108

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    724084
    发表于 2021-7-15 10:18:34 | 显示全部楼层 |阅读模式

    【我的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”,说明设置效果基本达到。

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-10-6 04:19 , Processed in 0.061663 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表