MakeとJavaの基本的な問題は、Makeが依存関係を指定し、次にその依存関係を解決するためのルールを指定しているという前提で機能することです。
基本的なCでは、通常、「main.cファイルをmain.oファイルに変換するには、「ccmain.c」を実行します。
あなたはJavaでそれを行うことができますが、あなたはすぐに何かを学びます。
ほとんどの場合、javacコンパイラの起動には時間がかかります。
の違い:
javac Main.java
javac This.java
javac That.java
javac Other.java
と
javac Main.java This.java That.java Other.java
昼と夜です。
何百ものクラスでそれを悪化させてください、そしてそれはただ耐えられなくなります。
次に、Javaがディレクトリ内のファイルのグループとして編成される傾向があるという事実と、Cやその他のフラットな構造に向かう傾向があるという事実を組み合わせます。Makeは、ファイルの階層を操作することを直接サポートしていません。
また、Makeは、コレクションレベルで、どのファイルが古くなっているかを判断するのはあまり得意ではありません。
Antを使用すると、古くなったすべてのファイルを調べて合計し、一度にコンパイルします。Makeは、個々のファイルごとにJavaコンパイラを呼び出すだけです。make NOTを実行するには、Makeがタスクに完全に対応していないことを実際に示すのに十分な外部ツールが必要です。
そのため、AntやMavenなどの代替手段が登場しました。