4

コンパイル エラーの場合、antjavacタスクはコンパイル可能なすべてのクラスをコンパイルしません。javac最初のエラーが発生するとすぐに、タスク (またはコンパイラ自体) が停止するようです。

プロパティは、failonerrorこの動作に影響を与えません。私はcompile属性を設定していません (したがって、Oracle JDK のコンパイラが使用されます)。

コンパイル エラーが発生した場合、できるだけ多くのクラスをコンパイルできますか?
(特定のコンパイラに依存しないことが望ましい)

これの使用例の 1 つは開発中
です。新しい機能を実装しているが、まだ完了しておらず、コンパイル エラーが残っているとします。
その間、他のバグを修正する必要があり、何も壊れていないことを確認するために、IDE のプロジェクト ワークスペースで Ant タスクによって呼び出される標準テスト スイートを実行する必要があります。Ant タスクはすべてのクラス/テスト クラスをコンパイルしようとしますが、開発中のクラスのコンパイル エラーが原因で失敗します。

可能な限り多くのテスト ケースを実行できるように、コンパイル エラーで失敗しないように ant/javac に指示すると非常に役立ちます。

4

1 に答える 1

3

それは とは何antの関係もjavacありません。エラーで停止し、クラス ファイルを提供することはありません。プロパティはfailonerror、コンパイルがエラーを返した場合にビルドを続行するか停止するかを示します。

1.3以降: http://docs.oracle.com/javase/1.3/docs/tooldocs/tools-changes.html

「新しい 1.3 コンパイラは、コンパイル中にソース ファイルにエラーを検出すると、残りのソース ファイルの解析を続行し、含まれている可能性のあるエラーを特定しようとします。コード生成は、コンパイルの残りの部分では完全に抑制されますが、 、エラーを含まないコンパイル単位の場合でも、クラス ファイルは生成されません。」

jikes などの他のコンパイラを使用することもできます。しかし、実際には、部分的にコンパイルされたクラスを実行したいと思う人がいるでしょうか?

于 2012-05-14T13:20:42.663 に答える