使用git开发,在本地开发一直都是好好的,但pull代码后再启动,就抛出了NoSuchMethodError。打开调试模式,设置断点,找到异常处,但奇怪的是,LoaderOptions有setAllowDuplicateKeys方法,这就奇怪了。
思考:NoSuchMethodError,运行时错误,编译时正常,运行时报找不到方法,说明类是存在的,但相同名字的类不止一个,所以极大可能是jar包冲突引起的。在断点处,找到类,jump to source,发现LoaderOptions并非所真正需要的snakeyml包下的,而是在于jruby-complete下的,再用maven插件show dependecies找出依赖jruby-complete的包,在pom中exclusion掉,再启动,成功。
桭
show Dependencies