1. 程式人生 > >Ant打jar包時,參數名被修改的問題

Ant打jar包時,參數名被修改的問題

自動 生成 oca jar 變量 pri 如果 屬性 eve

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包時,參數名被修改的問題