【遇到的问题】
- 第一天有很多人提交了代码到SVN,当晚,公司服务器自动build了新包。
- 第二天来到公司后,虽然从SVN拉了最新的代码,但是没有在自己的测试环境的Tomcat机器上安装这个最新的包。
- 在Eclipse中修改后台Java代码,从自己的Tomcat机器上取到.jar文件,将对应的.class文件放入.jar文件中的正确的路径下,然后将这个.jar文件放回到Tomcat机器上,重启Tomcat。
- 这之后,调试自己对后台Java代码刚做的修改,却怎么也调不对:
- 有些变量总是在调试窗口中总是取不到值(甚至连个null也取不到)
- 调试时有些代码的位置牛头不对马嘴,即期望走到某个函数,结果走到了一个另外一个奇怪的位置
【原因】
开始还以为是某些.class文件或者是某个资源文件忘了部署,导致期望的变量取不到正确的值。后来发现不是这样。真正的原因在于,第一天别人提及了很多代码,第二天我拉了这些代码,但没有更新Tomcat机器上的包,结果导致:
- 调试的时候,Tomcat机器上的包和调试用的Java不匹配,即第一天别人提及的很多改动,在Tomcat机器上没有
- 于是调试的.jar和调试用的Java代码对不上
- 调试的时候,牛头不对马嘴
- 出现各种意想不到的奇怪现象
【解决】
- 尽量及时更新测试环境的Tomcat机器上的包
- 尽量确保调试的环境的二进制文件和调试用的Java代码是匹配的,至少对于要调试的部分的代码,二者没有出入