Search code examples
javaantwarningsjavac

Make javac treat warnings as errors


I have an Ant file that compiles my program. I want the javac task to fail if any warning was reported by the compiler. Any clue on how to do that?


Solution

  • Use the -Werror flag. It's not listed in the -help output, but it works.

    I found it through this blog entry and tested on my own code (in NetBeans with Ant). The output was:

    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)
    

    Note that this is Java 6 only, though.

    Edit: Example of specifying this in Ant buildfile:

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