框架-jar包的挑选和版本需要注意哪些问题?

问题描述

jar包的挑选和版本需要注意哪些问题?

想了解一下在搭框架的时候对jar包这方面需要注意的问题有哪些

解决方案

工程和jar包引用的顺序,Eclipse通过classpath来定义类的引用关系,通常,我们用的最多的是源代码,源码工程,jar包,它们的顺序很重要,这也是导致jar包版本不一致的一个原因,想象一下,目的工程依赖A工程和B jar包,同时A工程也依赖B jar包,当然也引用了它,那么目的工程到底去寻找直接引用的B jar包呢还是引用A工程依赖的jar包?这三者之间的顺序有关系,我不建议你凭感觉行事,最有效的办法就是设置在B jar包的入口处设置一个断点,看它到底依赖的是哪个jar包。

很多工程都有配置文件,拿我们公司的来说,客户端有启动顺序xml配置文件,服务器端有服务器服务xml配置文件,有没有想过再Eclipse环境下是按什么方式找这些配置文件的,它查找目录的顺序又是怎样的?如果这些配置定义重复了会不会有问题?我就遇到过这样一种情况,A客户端定义了一份启动配置文件xml,平台客户端定义了一份启动配置文件xml,A客户端依赖平台客户端,最后它找到了两份启动配置文件xml,每一个task任务都重复加了一次,导致客户端启动出现问题。

说了上面三点我们经常遇到的问题根源,那么我再说说解决jar包版本问题不一直的最佳途径,首先,你要对哪些工程依赖哪些包,而这些包又是干什么的要熟悉,然后,将这些jar包都整理成一个版本统一放在一个文件夹下,然后将Eclipse的wokespace下工程依赖的jar包都指向这个文件夹下,保证整个wokespace下面用到的jar包都是同一个jar包。然后,建立工程,最重要的一点是,整个过程保持头脑十分清晰,不要犯低级错误,否则你会疲于奔命,而且,你做的每一个操作你必须要给出足够的理由。第一阶段是编译器通过,保证不会出现编译错误,第二阶段就是程序运行正常,这一阶段通常都是程序启动时会遇到很多问题,这种问题最霸道的解决办法就是深入代码!不要觉得这是一个小问题,深入代码可能会浪费你很多时间,你错了,如果你不深入代码,仅仅凭感觉操作的话,你会浪费十倍的时间!

解决方案二:

主要是版本冲突的问题,jar之间互相有依赖的,比如spring,可能依赖apache commons,log4j等
一般都是有固定版本的依赖,所以做好是用maven搭建项目,这样依赖的jar一清二楚

解决方案三:

主要是冲突的问题和缺少jar包的问题,其他的好像都不重要

解决方案四:

工程和jar包引用的顺序,Eclipse通过classpath来定义类的引用关系,通常,我们用的最多的是源代码,源码工程,jar包,它们的顺序很重要,这也是导致jar包版本不一致的一个原因,想象一下,目的工程依赖A工程和B jar包,同时A工程也依赖B jar包,当然也引用了它,那么目的工程到底去寻找直接引用的B jar包呢还是引用A工程依赖的jar包?这三者之间的顺序有关系,我不建议你凭感觉行事,最有效的办法就是设置在B jar包的入口处设置一个断点,看它到底依赖的是哪个jar包。

很多工程都有配置文件,拿我们公司的来说,客户端有启动顺序xml配置文件,服务器端有服务器服务xml配置文件,有没有想过再Eclipse环境下是按什么方式找这些配置文件的,它查找目录的顺序又是怎样的?如果这些配置定义重复了会不会有问题?我就遇到过这样一种情况,A客户端定义了一份启动配置文件xml,平台客户端定义了一份启动配置文件xml,A客户端依赖平台客户端,最后它找到了两份启动配置文件xml,每一个task任务都重复加了一次,导致客户端启动出现问题。

说了上面三点我们经常遇到的问题根源,那么我再说说解决jar包版本问题不一直的最佳途径,首先,你要对哪些工程依赖哪些包,而这些包又是干什么的要熟悉,然后,将这些jar包都整理成一个版本统一放在一个文件夹下,然后将Eclipse的wokespace下工程依赖的jar包都指向这个文件夹下,保证整个wokespace下面用到的jar包都是同一个jar包。然后,建立工程,最重要的一点是,整个过程保持头脑十分清晰,不要犯低级错误,否则你会疲于奔命,而且,你做的每一个操作你必须要给出足够的理由。第一阶段是编译器通过,保证不会出现编译错误,第二阶段就是程序运行正常,这一阶段通常都是程序启动时会遇到很多问题,这种问题最霸道的解决办法就是深入代码!不要觉得这是一个小问题,深入代码可能会浪费你很多时间,你错了,如果你不深入代码,仅仅凭感觉操作的话,你会浪费十倍的时间!

解决方案五:

如果你是使用SSH的话,强烈建议你使用MyEclipse来进行搭建,会省很多事情。

时间: 2024-09-19 09:06:07

框架-jar包的挑选和版本需要注意哪些问题?的相关文章

能否在调用jar包时指定jdk版本

问题描述 能否在调用jar包时指定jdk版本 电脑里的jdk是1.6的 最近想用apktool反编译一个apk,但貌似apk只能使用新版apktool 新版apktool需要jdk1.7 不想升级jdk 也不想修改环境变量切换jdk(怕改出问题来),有什么简单切换jdk的方法么 解决方案 不能,建议你使用jdk1.7吧

现在使用jar包2.1.1版本,注册不成功,是不是需要最新的版本呀

问题描述 现在使用jar包2.1.1版本,注册不成功,是不是需要最新的版本呀我在2.1.7版本上就可以注册成功,为啥2.1.1版本不成功呢 解决方案 注册不成功提示什么信息?2.1.1版本很老了吧,更新最新版本吧,新版本不管是功能还是稳定性都比老版本有很大的优化提升解决方案二:好吧 谢谢 但是使用最新的版本,会出现Unable to execute dex: Multiple dex files define Lch/imvs/sdes4j/CryptoAttri这种问题,所以一直没有更新解决方

Android项目导入JSON的jar包后运行报错

问题描述 Android项目导入JSON的jar包后运行报错 如图,通过这样的方式导入了JSON的Jar,可是导入后项目就运行报错了: 解决方案 have a try... http://blog.csdn.net/mxlxiao7/article/details/8978930 解决方案二: 解决方案三: 我知道是Jar冲突,到底是哪个冲突呢 解决方案四: 你是不是引入了外部工程. 错误信息提示,你的 apache/commons/collections 重复引用了. 应该同一个jar包,使用

使用maven解决两个开源框架的包冲突,必须下载它的源代码版本来自己编译吗?

问题描述 使用maven解决两个开源框架的包冲突,必须下载它的源代码版本来自己编译吗? 最近下载了两个相互配合的开源框架,都是编译好的二进制版本,但运行时报错提示jar包冲突. 自然想到了使用maven来解决包依赖.包冲突等问题. 但我对maven的理解是:它根据pom.xml文件来依次完成下载.编译.测试.打包等工作. 那我的问题就是,若要使用maven来管理包,是不是不能下载二进制版本的程序,只能下载源代码版本的来自己编译?因为如果下载编译好的二进制版本,每个框架其中的lib文件夹下已经有很

SSH框架应用中常用Jar包用途介绍

  commons-logging-1.0.4.jar Struts2加入了就不需要导入 log4j-1.2.15.jar Hibernate加入了就不需要导入     Jar文件:红色的为一定没有问题的jar包 操作数据库的jar mysql-connector-java-5.0.8-bin.jar   struts2 commons-logging-1.0.4.jarASF出品的日志包,Struts2框架使用这个日志包来支持Log4J的JDK1.4的日志记录. commons-logging

zk-关于ZK框架的问题,是不是少了某个jar包?

问题描述 关于ZK框架的问题,是不是少了某个jar包? 请问这是因为少了某个jar包导致的错误吗? 解决方案 缺少encodeJavaScript这个方法,应该是包的版本不对,jar包不匹配.你看看哪个版本有encodeJavaScript这个方法就下哪个jar包.

spring核心框架体系结构(jar包依赖)

很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下一次创建相同类型的工程时也不知道要配置哪些spring的依赖,只有拷贝,其实,当初我就是这么干的! spring的jar包只有20个左右,每个都有相应的功能,一个jar还可能依赖了若干其他jar,所以,搞清楚它们之间的关系,配置maven依赖就可以简洁明了,下面举个例子,要在普通java工程使用sp

java-搭建SSI框架,需要哪些jar包

问题描述 搭建SSI框架,需要哪些jar包 我要搭建SSI框架,但是不知道都需要哪些jar包,能帮我把需要的jar包列出来并说明各个jar包的用处吗? 还有尽量把配置文件里的每一处标上备注,在网上查到的一些搭建的文档,但是看着很费劲,不太明白配置的用处和起到什么作用. 目录结构最好也能说明一下 我是初学Java,所以有些东西不太懂,请说的尽量详细一些,谢谢! 解决方案 http://wenku.baidu.com/link?url=79V9X7t0kjRAjIp0maL1XfF2rWPXGHAL

产品打包工具的制作,ant,编译源码,打jar包,打tag,打war包,备份release版本等

1.  在进行打包工具的制作前,需要准备的软件有: svnant-1.3.1 作用是让ant和svn相关联 apache-ant-1.9.7 需要设置ant_home,path,我的配置是: ANT_HOME = D:\kaipu\cms4all\app-tpl-pack\apache-ant-1.9.7 Path = %ANT_HOME%\bin 2.准备好上面的操作之后,找个英文的目录,比如:D:\kaipu\cms4all\app-tpl-pack,在目录下创建两个文件build.xml和