Ant打war包,参数名变为无意义的arg0,arg1
问题描述
使用Ant打war包后,发现war包中的controller的参数名变成arg0,arg1,请求报如下错误:

解决办法:
在build.xml的javac命令中增加 debug="true" debuglevel="lines, vars, source"这两行属性
问题原因是:
- ant打包默认javac命令是debug=false的.
- debug打开后所生成的jar包会比原包大一些(我这里原250K的包,开了debug后增加到320K,大了三分之一)
- 如果你只要保留变量名可以简写成debuglevel="vars",这样jar包也会变小.(我这里320K的包,变成了280K)
- debuglevel="lines, vars, source"的参数说明如下
- lines:将源文件中的行号信息写到Class文件中,此属性用于在Class文件中生成方法字节码流偏移量和源代码行号之间的映射关系。不指定此属性的话,将在堆栈异常信息中看不到打印的行号。
- vars:Local variable属性建立了方法的栈帧中局部变量部分内容与源代码中局部变量名称和描述符之间的映射关系。有了这个属性,调试时,我们才可以看到变量的值。
- source:编译时指定了这个属性,会把源文件的属性信息如源文件名称写入class文件

浙公网安备 33010602011771号