短い答えは次のとおりです。ツールは同じことを異なる方法で行います。違いは、プロジェクトを構築するためにどのように使用できるかです。 Apache Mavenは「私たちの慣習に従う」方法になり、Gradleは柔軟性を提供します。いくつかの開発者は、新しいツールを望んでいないか、それを正しく使用する方法を学ぶ時間がありません。今
長い答え...いくつかの開発者がApacheのMavenのに添付されている理由
が正しく理解するために、我々は、過去に何年かを見ています。
Apache Maven
は、Gradle
のようなビルドオートメーションツールです。
メイヴェンは2004年にリリースされました。Gradle
最初のバージョンは2007年にリリースされましたが、初期にはMaven
として人気がなくなりました。 デベロッパーの中には、何か新しいことを学ぶ必要がなく、ほとんどの企業がブロック上の新しい子供のために既に実行中のマスターツール(Maven
)の交換を危険にさらしたくない場合があります。
Androidの開発が盛り上がったときに人気が出ました。 Androidのプロジェクトは、Java EE/Webプロジェクトとは異なるプロジェクト構造になっています。 AndroidのプロジェクトでMavenを使用しようとすると不自然に感じられるだけで、ツールは柔軟性を提供する準備ができていませんでした。
これまでApache Mavenは、強制的な慣習をすでに知っていれば、簡単なJava EEプロジェクトで使用できます。だからGradle/Androidアプリと連絡を取り合わなかった開発者は、別のツールに変更する動機はありません。
私の意見では、Gradle
はあなたが想像することができるあらゆる方法でApache Maven
よりも優れています。それはあなたに柔軟性を与え、あなたの方法で取得しようとしない、Apache Maven
で見つけることができない "機能"。 Apache Maven
のライフサイクルに従わないと、ビルドに失敗します。それだけです。
例えば、Gradle
を使用している場合、あらゆる種類のレイアウトで多くのディレクトリにコードを分散することができます。 Maven
にあり、あなたが 'convention'に従わなければ、あなたのフォルダ構造を理解して処理できるように、あなたのpom(Maven
のビルドファイル)を変更するのに数時間かかるでしょう。
例:Javaソースコードはsrc/main/java
フォルダにある必要があります。古いプロジェクトがあり、構造がsrc/java
の場合、ごめんなさい。すべてのMavenプラグインが期待通りに動作するという保証はありません。
Gradle
私たちは非常に整理されたチャートで比較するために多くの機能を追加しました。見てみましょう。 https://gradle.org/maven_vs_gradle/