感觉有点不可思议,Springboot的发布包的BOOT-INF/lib下的jar包的加载顺序居然跟jar放到发布包中的时间顺序有关,放进去的时间在前,则是运行时加载使用的,放进去时间在后的,则未被使用:
测试方法,同时包含了hibernate-validator-5.3.5.Final.jar和hibernate-validator-6.1.5-Final.jar两个依赖,springboot maven插件打包后,使用winRAR打开,把5.3.5版本的包先去掉再添加进,则5.3.5不生效,把6.1.5去掉再添加进,则6.1.5不生效。BOOT-INF/lib/classpath.idx未起作用,删除掉也没关系。可能classpath.idx只有在docker使用才起作用。