なぜJavaでmakeを使わないのか?質問する

なぜJavaでmakeを使わないのか?質問する

私が見たJavaプロジェクトのほとんどはMavenかAntを使用しています。これらは優れたツールであり、ほぼすべてのプロジェクトで使用できると思います。しかし、作る? さまざまな非 Java プロジェクトに使用され、Java を簡単に処理できます。もちろん、Windows を使用する場合は make.exe をダウンロードする必要がありますが、Ant と Maven にも JDK は付属していません。

Java で使用する場合、make に根本的な欠陥があるのでしょうか? Ant と Maven が Java で記述されているからでしょうか?

ベストアンサー1

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

昼と夜です。

数百のクラスでそれが悪化すると、それは耐えられなくなります。

次に、Java はディレクトリ内のファイルのグループとして編成される傾向があるのに対し、C やその他の言語はよりフラットな構造になる傾向があるという事実とこれを組み合わせます。Make は、ファイルの階層構造を直接操作することをあまりサポートしていません。

また、Make は、コレクション レベルでどのファイルが古くなっているかを判断するのがあまり得意ではありません。

Ant では、古くなったファイルをすべて調べて合計し、それらを一度にコンパイルします。Make は、各ファイルごとに Java コンパイラを呼び出すだけです。make にこれを行わせないには、Make がそのタスクを十分に実行できないことを実際に示すのに十分な外部ツールが必要です。

そのため、Ant や Maven などの代替手段が登場しました。

おすすめ記事