maven使用不当唤起 Bad version number in .class file的报错

maven使用不当引起 Bad version number in .class file的报错现象是报Bad version number in .class file

maven使用不当引起 Bad version number in .class file的报错
现象是报Bad version number in .class file的错误
实际出错是在service的一行转json的代码后面Catch JSONException的地方
由于没有提示出错的代码行,只能通过二分法在spring配置文件中逐步定位service类
然后再二分法定位报错的方法,折腾2小时。
原因最后查明:
本地的maven lib库里json-1.0.jar 有两个版本,1.0是jdk5编译的,20090211是1.6编译的;
之前的负责架构的在将ant迁到maven时,用20090211 替换了1.0,后来使用发现了问题。
项目建了三个maven module project。A+B+C,B和C是两个模块,当初更正了A的pom,但没有改BC的pom,因为BC没有用到转json,因此一直没有出问题。
A中的转json都是在action中,这次出错时是因为有人将转json写在service中。检查junit的运行环境,发现含有包20090211,估计是从BC关联引用的。
修改B、C的pom将json版本改为1.0,再检查junit的运行的source里面已经没有20090211的包。再运行,不再报版本不一致的错误。
教训:检查问题时,在A中,点JSONException,指向的是1.0版本jar包,此时未检查junit的运行参数。