javac通过Ant任务运行时,是否有任何清楚说明和简单的方法来查看编译器输出?
javac
这是我的javacAnt标签:
<javac srcdir="${myproject.src}" destdir="${myproject.class}"> <!-- ... --> </javac>
这是我收到的唯一错误消息:
/path/to/build.xml:42: Compile failed; see the compiler error output for details.
问题是我不知道如何 查看编译器错误输出以了解详细信息 …
很少有配置元素可以帮助您:
我认为您正在寻找verbose="true"属性。
verbose="true"
要求编译器提供详细输出;默认为否。
您已经在评论中提到,这不能打印出错误的原因。好吧,我认为您的情况正在发生其他变化。我有一个示例项目,无论哪种方式,我的错误原因都会被打印出来。这是输出verbose="false":
verbose="false"
[mkdir] Created dir: C:\Projects\MavenSandbox\target\classes [javac] C:\Projects\MavenSandbox\mavensandbox.xml:284: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds [javac] Compiling 3 source files to C:\Projects\MavenSandbox\target\classes [javac] C:\Projects\MavenSandbox\src\main\java\com\sandbox\Sandbox.java:8: error: cannot find symbol [javac] System.out.prinln("Hello, I\'m the best!"); [javac] ^ [javac] symbol: method prinln(String) [javac] location: variable out of type PrintStream [javac] 1 error
错误和特定于您代码的错误导致错误消息。您可以创建一个重现该错误的示例项目吗?
正如您提到的,debug="true"这不是您要查找的属性。
debug="true"
指示是否应使用调试信息编译源;默认为关闭。如果设置为off,则-g:none将在支持该功能的编译器的命令行上传递(对于其他编译器,将不使用命令行参数)。如果设置为true,则debuglevel属性的值确定命令行参数。
您知道何时获得堆栈跟踪并且其中有行号吗?就是debug="true"那样 如果关闭,则不会显示行号。