1.问题描述
我现在有一个maven工程A,A依赖jar包B,B又依赖jar包C。如果现在jar包C需要升级,比如从1.0升级到2.0,但是我又没有jar包B的源代码。
1)我可以直接升级jar包C吗?
2)jar包B在pom文件中指定依赖1.0版本,现在升级jar包C到2.0版本了,启动tomcat的时候jar包B的pom依赖会不会检测出问题?
3)如果我把jar包C直接干掉,tomcat启动的时候回检查import的依赖吗?

2.做了如下一个实验,验证环境是:
1)apache-tomcat-7.0.75-windows-x64
2)jdk1.8.0_91
3)maven3.2.1

3.验证流程如下:

clipboard.png

4.回答一下上面的几个问题
1)我可以直接升级jar包C吗?
可以升级,前提是新版本的jar包接口兼容老版本的接口
2)jar包B在pom文件中指定依赖1.0版本,现在升级jar包C到2.0版本了,启动tomcat的时候jar包B的pom依赖会不会检测出问题?
maven只是在编译的时候检测依赖,版本启动运行的时候不检测版本依赖
3)如果我把jar包C直接干掉,tomcat启动的时候回检查import的依赖吗?
tomcat在启动的时候不会检测依赖,但是在业务访问的时候如果涉及到相关类和接口,则会由于找不到依赖包而报NoClassDefFoundError


sean
141 声望8 粉丝

记录、思考、分享、输出