当前位置: 首页 > 知识库问答 >
问题:

如何使maven编译器插件不隐藏错误源位置

梁丘德寿
2023-03-14

也许有一个 maven-编译器-插件选项,但我还没有找到它。

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

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

请注意,它去掉了实际指向错误的行。(这是使用甲骨文JDK 7。)

好的,所以起初我认为这个较旧的问题会有答案,因为它也是关于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) {
                                               ^

这里< code > 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-编译器-插件不隐藏它?

共有1个答案

汪胡非
2023-03-14

这是不可能的,并且功能请求已经在官方Maven编译器JIRA上挂起

MCCOMPILER-229:编译错误应通过javac工具报告

在撰写本文时,该票证的状态为“打开”,自 14 年 7 月 25 日起创建。

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

 类似资料:
  • 我有与BitBucket版本5.2.2一起工作的插件,我想更新它以支持BitBucket版本6.8.0。如下所示更新我的后,当我尝试运行时,我遇到依赖项错误: pom.xml: 编译时出错: 我不确定所提到的bitbucket版本的amps和bitbucket-maven-plugin的对应版本,这可能是错误的原因之一。

  • 当我在vscode的集成终端中运行java程序时,完整的java路径显示为一大框文本。有没有什么办法可以把它带走? /library/java/javavirtualmachines/jdk-13.0.1.jdk/contents/home/bin/java--enable-preview-dfile.encoding=utf-8-cp“/users/myusername/library/appl

  • 我正努力做: 但由于某种原因,我得到了编译器错误: CS0533'混凝土。Execute()'隐藏继承的抽象成员'程序。基础执行() 我在过去隐藏了很多成员,但从来没有遇到过这种情况,我在这里很困惑。在MSDN和web上花了很长时间,但找不到有关此行为的任何信息。 我真的非常感谢你对这个问题的任何见解。 这是小提琴。

  • 问题内容: 当我在Netbeans中构建并运行程序时,它可以正常工作。但是当我尝试“ mvn compile”时,使用相同的pom.xml文件会出现以下错误: 我的Java版本不是1.3,这里是“ mvn -version”的结果 这是第53行: 问题答案: 问题是在Maven2中默认使用和 您可以通过将其添加到pom中来解决此问题: 将其放在最顶层的父pom中是很实际的,这样您派生的pom不需要

  • 编译模块com。实例我的包裹。GWT。HelloGWT [INFO]验证新编译的单元 [INFO]在第一次过程中忽略了1个单元,其中包含编译错误 [INFO]编译时将-strict或-logLevel设置为TRACE或DEBUG以查看所有错误 [INFO]在文件:/home/ilsurih/Projects/maven hibernate/src/main/java/com/example/myP

  • 我的系统中有以下配置: Apache Maven 3.5.2 Maven主页: /usr/share/mavenJava版本:1.8.0_162,供应商:Oracle CorporationJava主页: /usr/lib/jvm/java-8-openjdk-amd64/jre默认语言环境:en_US,平台编码:UTF-8操作系统名称:"linux",版本:"4.15.0-20-通用", arc