Вопрос по javac, ant, warnings, java – Javac: обрабатывать предупреждения как ошибки

58

У меня есть файл Ant, который компилирует мою программу. Я хочу, чтобы задача javac не выполнялась, если компилятор сообщил о каком-либо предупреждении. Любая подсказка о том, как это сделать?

+1, потому что я никогда бы не подумал посмотреть. Michael Myers♦

Ваш Ответ

1   ответ
58

-Werror флаг. Он не указан в-help выходной, но это работает.

Я нашел это черезэта запись в блоге и проверено на моем собственном коде (в NetBeans с Ant). Выход был:

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.

Edit: Пример указания этого в Ant buildfile:

<javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath">
    <compilerarg value="-Xlint:all"/>
    <compilerarg value="-Werror"/>
</javac>
Обновление: по крайней мере, в Java 8,-Werror сейчас задокументировано в-help («Завершить компиляцию при появлении предупреждений») иonline docsхотя это задокументировано в нижнем регистреw там (-werror).
Знаете ли вы, как указать javac.compilerargs непосредственно в сборочном файле Ant? В блоге немного неясно об этом.
-werror у меня не работает, но-Werror делает. мой-help показывает-Werror тоже (я бегуjavac 1.8.0_121).
Ах, нашел способ:<compilerarg> element, Я позволил себе добавить пример к вашему ответу.
И да, это, вероятно, не лучшая идея комбинировать -Werror с -Xlint, как я делал здесь.

Похожие вопросы