2019-10-16 09:28
@JFinal 我这边刚刚测试的结果好像可以通过CP配置指定类加载优先级。
测试过程:我重写的shiro中的一个类,shiro的jar中的class没有删除,我自己项目打包出来的jar里面的同名类也打进去了,然后添加了一个编译好的class到CP配置的classes目录下。
测试出来的结果:
win10开发电脑运行bat:CP不指定classes目录或者CP配置的时候将${APP_BASE_PATH}/classes:放在lib后面,加载的是项目打包出来的my-project.jar中的class;CP指定classes并放在CP的最前面时,加载的是放置在classes文件夹中的class。
CentOS7运行sh:CP不指定classes目录或者CP配置的时候将${APP_BASE_PATH}/classes:放在lib后面,加载的是shiro-core.jar中的class;CP指定classes并放在CP的最前面时,加载的是放置在classes文件夹中的class。
2019-10-15 14:39
@JFinal 感觉大佬指点,我这边的需要搞定了。
现在采用的是直接只使用第5步,只改启动文件的CP配置,把自定义的classes目录放在前面。其他都按照jfinal_demo_for_maven的不变,项目jar包依然打,只把自己与第三方jar包冲突的class放入配置的classes目录里面(添加完整包路径)即可优先加载自定义classes目录的class文件。
谢谢