如何使用maven获取完整的javac编译器错误?

时间:2013-12-18 22:48:26

标签: maven build compiler-errors javac

我目前正在学习如何使用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错误消息?

1 个答案:

答案 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>