2009-06-24 100 views
56

我有一个编译我的程序的Ant文件。如果编译器报告任何警告,我希望javac任务失败。任何线索如何做到这一点?Javac:将警告视为错误

+2

+1,因为我从来没有想过的样子。 – 2009-06-24 18:30:56

回答

55

使用-Werror标志。它没有在-help输出中列出,但它工作。

我通过this blog entry发现它,并在我自己的代码中进行了测试(在使用Ant的NetBeans中)。输出是:

 
MyClass.java:38: warning: [serial] serializable class MyClass has no definition of serialVersionUID 
public class MyClass extends JComponent { 
1 warning 
BUILD FAILED (total time: 3 seconds) 

请注意,这仅仅是Java 6。

编辑:在Ant构建指定此示例:

<javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"> 
    <compilerarg value="-Xlint:all"/> 
    <compilerarg value="-Werror"/> 
</javac> 
+2

是的,这可能不是最好的想法 - 像我在这里做的那样将-Werror和-Xlint结合起来。 – 2009-06-24 18:53:31