我们在测试过程中,经常面临JAR包升级的情况,那么在JAR包升级过程中,我们应该关注哪些东西呢?
什么是JAR包??
Java Archive,Java 归档文件。jar的文件格式与平台无关,它允许将许多文件组合成一个压缩文件。JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。
a.用于发布和使用类库
b.作为应用程序和扩展的构建单元
c.作为组件、applet 或者插件程序的部署单位
d.用于打包与组件相关联的辅助资源
JAR包升级,经常的修改范围为:
a. 新增枚举
b. 新增/修改/废弃接口
JAR包升级,我们关注啥??
JAR包升级,我们最重点的是关注此次JAR包升级更改了哪些内容,是新增了枚举,还是新增了接口,目前还没有找到一个合适的JAR包比较工具,只能和开发一起确认,此次JAR包升级修改的内容是什么。
梳理对我们系统的影响范围,目前在我们公司进行JAR包升级最主要的可能是新增枚举,或者新增接口。为了保证新老JAR包的兼容,一般不会修改老枚举和老接口的内容。
确定哪个子BUNDLE用到了这个JAR包,再确定我们对这个JAR包的应用,如果我们对这个JAR包的应用和本次修改内容相关,那么我们就需要关注业务是如何处理的,修改内容是否会影响到我们的业务处理。如果修改内容我们没有用到,我们用到的是其它的接口或者枚举,那么我们只需要升级版本号,不需要关注任何功能点。
根据梳理出来的JAR包应用,确定业务处理流程,然后回归我们对应的业务流程,来保证我们业务的稳定性。
常见FAQ
1.如何确定我们的系统有没有引用一个JAR包??
SOFA工程进入总POM.XML文件下,根据名称搜索,如果有则引用了此JAR包。
ANTX工程进入PROJECT.XML文件下,根据名称搜索,如果有则引用了此JAR包。
2.如何确定哪个BUNDLE引用了JAR包??
SOFA工程进入子POM.XML文件下,根据名称搜索,如果有则引用了此JAR包。
ANTX工程进入子PROJECT.XML文件下,根据名称搜索,如果有则引用了此JAR包。
3.如何确定哪段代码引用了这个JAR包??
在ECLIPSE中使用CTRL+H进行搜索,本次修改的内容。能够搜索到的话就是引用此JAR包的地方,或者是根据package进行搜索。
JAR包相关知识补充
JAR包:打成JAR包的代码,一般作为工具类,在项目中,会应用到N多JAR工具包;
WAR包:JAVA WEB工程,都是打成WAR包,进行发布,如果我们的服务器选择TOMCAT等轻量级服务器,一般就打出WAR包进行发布;
EAR包:这针对企业级项目的,实际上EAR包中包含WAR包和几个企业级项目的配置文件而已,一般服务器选择WebSphere等,都会使用EAR包