我目前正在学习如何使用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错误消息?
答案 0 :(得分:3)
在搜索了一下后,似乎这种行为是由Maven编译器插件中的一个错误引起的。这个问题的解决方案解决了我的问题:maven "cannot find symbol" message unhelpful。只需将其添加到您的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>