Ant打jar包时,参数名被修改的问题

Posted 阿狸哥哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ant打jar包时,参数名被修改的问题相关的知识,希望对你有一定的参考价值。

https://blog.csdn.net/landehuxi/article/details/42678117

使用Ant打jar包后,发现jar包中的方法名会在前面自动添加了“param”前缀,导致Spring的Bean注入时,因bean名称不正确初始化失败。

解决办法:

在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文件

以上是关于Ant打jar包时,参数名被修改的问题的主要内容,如果未能解决你的问题,请参考以下文章

springBoot项目打jar包后,修改配置文件中的配置项

springBoot项目打jar包后,修改配置文件中的配置项

命令行运行java程序,引入的其他jar包时,如何解决?

ant安装教程java怎么使用ant打jar包ant配置环境

05_SpringBoot打jar/war包解决第三方依赖jar包的问题

命令行运行java程序,引入的其他jar包时,解决方案