【问题标题】:How to make maven-compiler-plugin not hide error source locations如何使 maven-compiler-plugin 不隐藏错误源位置
【发布时间】:2016-05-17 08:34:27
【问题描述】:

也许有一个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

注意那些直接指向我拼错类型名称的地方。 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

注意它去掉了实际指向错误的行。 (这里使用的是 Oracle JDK 7。)

好的,所以一开始我以为this older question 会有答案,因为它也是关于maven-compiler-plugin 没有显示整个错误消息,它说修复是更新到maven-compiler-plugin 3.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) {
                                               ^

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

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

【问题讨论】:

    标签: java maven maven-3 maven-compiler-plugin


    【解决方案1】:

    这是不可能的,官方Maven Compiler JIRA已经有一个功能请求待处理

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

    在撰写本文时,工单的状态为 OPEN,创建时间为 7 月 25 日/14

    你可以提出一个补丁或者 - 至少 - 投票给票(我刚刚做到了)。

    【讨论】:

    • 啊,太好了,我找了一个但没找到。
    猜你喜欢
    • 2017-07-04
    • 1970-01-01
    • 2021-02-07
    • 2013-01-14
    • 1970-01-01
    • 2015-01-18
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多