我目前正在学习如何使用Maven构建我用Java编写的项目。以前,我只使用javac
来编译我的项目,并且我已经习惯了它生成的错误消息。我尝试使用mvn compile
编译以下错误的测试程序,然后手动javac
:
public class App {
public static void main( String[] args )
{
System.out.print(a);
}
}
javac
产生:
App.java:5: error: cannot find symbol
System.out.print(a);
^
symbol: variable a
location: class App
1 error
但是mvn compile
会产生这个(在一堆其他堆栈跟踪和输出中):
...
[ERROR] /home/htor/maven-test/cflat/src/main/java/no/uio/ifi/cflat/App.java:[5,25] error: cannot find symbol
[ERROR] -> [Help 1]
...
后者不如第一条错误消息有用,并且不包含来自javac
的完整错误消息。我尝试使用-e
和-X
但错误报告相同,只是周围有更多的噪音。
如何在来自 Maven 的错误消息中获取完整的 Javac 错误消息?
搜索更多后,似乎这种行为是由Maven编译器插件中的错误引起的。这个问题的解决方案解决了我的问题:maven"找不到符号"消息没有帮助。只需将其添加到您的pom.xml
文件中即可使用最新的compiler
插件:
<project>
...
<build>
....
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</project>