2010-11-18 8 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

+0

私はあなたの設定を試しましたが、結果として得られるクラスファイルは小さくなりましたが、ラインテーブルはまだそこにあります!!! – HDave

+0

@HDaveあなたは清掃しまし​​たか?私はこれを投稿する前にテストしましたが、上記の設定を使用してラインテーブルは明らかに欠けています。 –

関連する問題