将 Maven Java 编译器调试设置为 false 不会删除行号表吗?

2022-09-02 13:25:59

也许这是我缺乏理解,但我本来以为在Maven Java项目中这样做会禁止所有调试信息进入类文件:

            <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

显然,这些东西还在那里....我认为。


答案 1

这看起来像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>

(是的,我知道,这不是文档所说的,但是好吧,它有效)


答案 2

推荐