【问题标题】:How to get full javac compiler error with maven?如何使用 maven 获取完整的 javac 编译器错误?
【发布时间】:2014-01-07 08:05:13
【问题描述】:

我目前正在学习如何使用 Maven 来构建我用 Java 编写的项目。以前,我只使用javac 编译我的项目,我已经习惯了它产生的错误消息。我尝试使用mvn compilejavac 手动编译以下错误的测试程序:

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 的错误消息中获取 full Javac 错误消息?

【问题讨论】:

    标签: maven build compiler-errors javac


    【解决方案1】:

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

    【讨论】:

    • 你摇滚。当前版本的 swagger codegen (2.1.4) 使用旧的错误值创建 pom.xml。这使错误再次变得合理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    • 2015-10-03
    • 1970-01-01
    相关资源
    最近更新 更多