Javac:将警告视为错误

Ita*_*man 58 java ant warnings javac

我有一个编译我的程序的Ant文件.如果编译器报告任何警告,我希望javac任务失败.有关如何做到这一点的任何线索?

Mic*_*ers 58

使用-Werror标志.它没有在-help输出中列出,但它有效.

我通过这篇博客文章找到了它并在我自己的代码上进行了测试(在带有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>
Run Code Online (Sandbox Code Playgroud)

  • 是的,将-Werror与-Xlint结合起来可能不是最好的主意,就像我在这里做的那样. (2认同)
  • 啊,找到了一种方法:[<compilerarg>元素](http://ant.apache.org/manual/Tasks/javac.html).我冒昧地为你的答案添加了一个例子. (2认同)
  • 更新:至少在Java 8中,`-Werror`现在记录在`-help`("如果出现警告时终止编译")和[在线文档](https://docs.oracle.com/javase/8/) docs/technotes/tools/windows/javac.html),尽管它有一个小写的`w`(`-werror`). (2认同)