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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (33)

也许这是我缺乏理解,但我会假设在Maven Java项目中这样做会禁用所有调试信息进入Class文件:

            <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
提问于
用户回答回答于

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

(是的,我知道,这不是文档所说的,但是,它的工作原理)

扫码关注云+社区