2010-11-18 27 views
16

也許這是我缺乏瞭解,但我會假設在Maven的Java項目這樣做會從進入類文件禁用所有調試信息:將Maven Java編譯器調試設置爲false不會刪除行號表?

  <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <debug>false</debug> 
       </configuration> 
      </plugin> 

不過,我只是測試它,而局部變量表消失,源文件引用消失,行號表仍然存在。我做了javap -l MyClass,仍然得到的東西,如:

protected com.mycorp.myapp.randomMethod(); 
    LineNumberTable: 
    line 197: 0 
    line 68: 4 
    line 69: 9 
    line 70: 14 
    line 198: 19 

顯然,東西還在裏面....我想。

回答

18

這看起來像MCOMPILER-114。使用以下似乎與插件的版本2.3.2工作:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.3.2</version> 
    <configuration> 
     <debug>true</debug> 
     <debuglevel>none</debuglevel> 
    </configuration> 
    </plugin> 

(是的,我知道,這不是什麼文檔說,但遠,它的工作原理)

+0

哇。我驚呆了。我想知道有多少人從來沒有打擾過反彙編他們的Java類,並發現這一點。 – HDave 2010-11-19 00:45:09

+0

我剛剛嘗試了您的設置,而生成的類文件較小時,線表仍然存在! – HDave 2010-11-19 00:53:44

+0

@HDave你乾淨嗎?我在發佈前測試了這一點,並且使用上述設置顯然缺少行表。 – 2010-11-19 09:16:55

相關問題