如何使用 maven 获取完整的 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 错误消息?

搜索更多后,似乎这种行为是由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>

最新更新