我正在开发一个将程序从ant转换为maven的项目,我认为我成功完成了第一次迁移,但是当我在araxis merge中运行比较时,它显示.class文件不同。我决定进入并运行javap并反汇编输出类文件以查看它们为什么显示为不同(谢天谢地,只有7个)。然后,我对反汇编的文件进行了比较,发现存在很多差异。我很困惑为什么这些差异会存在,并且很想知道是否有人可以解释它?
我看到的一件事是maven版本包含这两个LineNumberTable和LocalVariableTable输出,而ant一个没有:
LineNumberTable:
line 1207: 0
line 1208: 5
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this Lbeans/BasicDao;
0 6 1 password Ljava/lang/String;
我也看到常数池因数字而不同,比较:
#63 = Methodref #667.#668 // java/lang/Integer.parseInt:(Ljava/lang/String;)I
为:
#63 = Methodref #552.#553 // java/lang/Integer.parseInt:(Ljava/lang/String;)I
这对最终产品有何影响?非常感谢任何帮助!