1. ホーム
  2. java

[解決済み] なぜ誰もJavaのmakeを使わないのですか?

2022-05-05 22:40:35

質問

私が見てきたほぼすべてのJavaプロジェクトは、MavenかAntを使っていました。 これらは素晴らしいツールで、ほぼすべてのプロジェクトがこれらを使用できると思います。 しかし、これまで 作る ? Java以外の様々なプロジェクトに使われていて、簡単にJavaを扱うことができます。 確かにWindowsを使っている場合はmake.exeをダウンロードする必要がありますが、AntやMavenにもJDKは付属していません。

Javaで使う場合、makeには何か根本的な欠陥があるのでしょうか? AntやMavenがJavaで書かれているからというだけなのでしょうか?

解決方法は?

MakeとJavaの根本的な問題は、Makeは依存関係を指定し、その依存関係を解決するためのルールを指定することを前提に動作することです。

基本的な C 言語では、main.c ファイルを main.o ファイルに変換するには "cc main.c" と実行するのが一般的です。

javaでもできるんですが、すぐに何かを覚えてしまうんです。

主にjavacコンパイラの起動が遅いということです。

との違い。

javac Main.java
javac This.java
javac That.java
javac Other.java

そして

javac Main.java This.java That.java Other.java

は夜と昼。

さらに、何百ものクラスがあるとなると、もうどうしようもありません。

さらに、C言語などのフラットな構造に対して、Javaはディレクトリ内のファイル群として構成される傾向があるという事実が加わります。Makeは、ファイルの階層を扱うための直接的なサポートはあまり持っていません。

また、コレクションレベルで、どのファイルが古くなっているかを判断するのも苦手です。

Antでは、期限切れのファイルをすべて調べて合計し、一度にコンパイルします。Makeは、個々のファイルに対して、単にjavaコンパイラを呼び出すだけです。Makeにこれをさせないためには、十分な外部ツールが必要で、Makeがこのタスクに全く対応できていないことがよくわかります。

だから、AntやMavenのような代替手段が台頭してきたのです。