微服务中包含两个模块,A 和 B, 服务器上使用的是 非全量打包模式,公共模块抽取到了lib目录下。
服务器上的目录结构为
/resource
/lib
/server.jar
其中 server.jar 为 A模块的信息, B模块以及其他依赖全部都在 lib包下。
打包全部都是使用jekins打包。今天自己排查问题,写测试代码不能提交到git,于是直接本地maven打全量包 server.jar 包含所有信息,丢到服务器,替换server.jar
运行的时候发现修改的地方全部都不生效,排查了半天发现 server.jar 里面的META-INF 里面的 MANIFEST.MF 文件中包含
Start-Class: 主启动类
Class-Path: 类路径需要找的地方。里面包含了 /lib 下的包。
于是我自己打的全量server包里面的B 模块的内容并没有被装载到JVM中,而是使用了之前的lib 包里面的B模块,所以代码没有生效.
解决方法就是直接把lib包改名就好。