如何使maven-compiler-plugin不会隐藏错误源位置

Cha*_*ack 8 java maven-3 maven maven-compiler-plugin

也许有一个maven-compiler-plugin选择,但我没有找到它.

javac直接运行并打印错误时,在消息的第一行之后,它会在指向错误位置的下一行显示受影响的源代码行.它看起来像这样:

com/invariantproperties/udt/sql/RationalUDT.java:324: error: cannot find symbol
    public static boolean lessThan(RRationalUDT p, double q) {
                                   ^
  symbol:   class RRationalUDT
  location: class RationalUDT
Run Code Online (Sandbox Code Playgroud)

注意直接指向我拼写错误类型名称的行.它maven-compiler-plugin显示如下:

[ERROR] /var/tmp/pljava-udt-type-extension/java/src/main/java/com/invariantproperties/udt/sql/RationalUDT.java:[324,36] cannot find symbol
  symbol:   class RRationalUDT
  location: class com.invariantproperties.udt.sql.RationalUDT
Run Code Online (Sandbox Code Playgroud)

注意它摆脱了实际指向错误的行.(这是使用Oracle JDK 7.)

好的,所以起初我认为这个较旧的问题会得到答案,因为它也maven-compiler-plugin没有显示整个错误消息,并且说修复程序是更新到maven-compiler-plugin3.1版.

但是对于这个问题,我尝试了2.4,3.1和3.5而没有任何改进.显示错误的行总是丢失.

这适用于任何javac错误.在示例中,我拼错了一个符号,只是为了得到与旧问题所讨论的相同的错误.但我可以修复那个并制作另一个(这个来自javac注释处理器):

com/invariantproperties/udt/sql/RationalUDT.java:324: error: No known mapping to an SQL type
    public static boolean lessThan(RationalUDT p, double q) {
                                               ^
Run Code Online (Sandbox Code Playgroud)

而这里的maven-compiler-plugin节目只是:

[ERROR] /var/tmp/pljava-udt-type-extension/java/src/main/java/com/invariantproperties/udt/sql/RationalUDT.java:[324,47] error: No known mapping to an SQL type
Run Code Online (Sandbox Code Playgroud)

我的意思是,至少它显示括号中的行和列,因此找到错误并非完全不可能,但正常显示javac更有帮助.有什么方法可以maven-compiler-plugin不隐藏吗?

A_D*_*teo 1

这是不可能的,并且官方Maven 编译器 JIRA上的功能请求已待处理

MCOMPILER-229:javac 工具应报告编译错误

在撰写本文时,该票证处于OPEN状态,自2014年 7 月 25 日起创建。

你可以提出一个补丁或者 - 至少 - 投票支持票(我刚刚这样做了)。