【发布时间】:2012-12-19 07:39:36
【问题描述】:
这是一个非常简单的问题,它可能是我不知道的某个地方的设置,但谷歌对这个问题特别没有帮助,给出关于编译错误的结果,而不是如何更改编译错误消息。
当我使用 maven 构建项目时,它会给我错误消息,格式大致如下:
[ERROR] /path/to/source/Main.java:[13,8] 错误:找不到符号
当我使用 ant 或 javac 构建时,它实际上会告诉我它在错误消息中找不到的符号。 maven 给了我一个行号和字符位置,但显示实际符号会更有帮助。上面的行是每个“找不到符号”错误的唯一行。上面或下面没有给出符号的线。我想必须有某种方法让 maven 告诉我这些信息,但我不知道它是什么。我尝试了 -e 选项,因为 mvn 告诉我尝试使用它,但它为错误提供了 maven 回溯,而不是实际符号。
有什么帮助吗?
这是 mvn --version 的输出
Apache Maven 3.0.4 (rNON-CANONICAL_2012-10-24_11-25_mockbuild; 2012-10-24 07:25:04-0400)
Maven home: /usr/share/maven
Java version: 1.7.0_09-icedtea, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.6.6-1.fc17.x86_64", arch: "amd64", family: "unix"
这是一个示例(无用)错误消息,与 maven 的输出完全相同(只是缩短了目录):
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /path/to/source/SoundEngineFilePanel.java:[33,8] error: cannot find symbol
[ERROR] class SoundEngineFilePanel
/path/to/source/SoundEngineFilePanel.java:[36,8] error: cannot find symbol
[INFO] 2 errors
[INFO] -------------------------------------------------------------
它找不到的符号是“fakeThing”和“fakeThing2”,而不是 SoundEngineFilePanel。
【问题讨论】:
-
你能提供一些版本信息(特别是Maven)等吗?这不是发生在我身上的事。
-
确实,maven“找不到符号”消息不是很有帮助。我可以告诉你我的情况,我的代码长时间使用第三方库的特定方法,但不知何故,该方法已从第三方库中删除。当 maven 编译代码时它失败了。如果消息是“找不到方法”而不是“找不到符号”,那么它会非常有效且耗时更少。
-
致那些愿意为这个问题添加另一个答案的人。 仔细阅读问题。这不是关于如何修复“找不到符号”编译错误(在 Maven 中)。它是关于如何让 Maven 提供更多信息的编译错误消息;即包含源代码上下文的消息...例如
javac和Ant。
标签: java maven compiler-errors settings