1. ホーム

[解決済み】なぜAntやMavenの代わりにGradleを使うのか?[解決済み]

2022-03-27 11:06:55

質問

Javaをターゲットにした別のビルドツールは、本当に何をもたらすのか?

他のツールではなくGradleを使用している場合、その理由は?

解決方法は?

を使用していません。 グラドル を、自分自身で怒っている(今のところ、おもちゃのプロジェクトだけですが) [筆者はGradleをおもちゃのプロジェクトにしか使っていないという意味であり、Gradleがおもちゃのプロジェクトであるという意味ではない。] とはいえ、使用を検討する理由は、AntやMavenの不満からでしょうね。

私の経験では、Antはしばしば書き込み専用です(はい、私はそれが可能であることを知っている 美しくモジュール化された、エレガントなビルド しかし、ほとんどの人はそうではないのです。) 複雑なビルドを本当にポータブルにするためには、細心の注意が必要です。その命令的な性質から、ビルド間で設定が重複してしまうことがあります (マクロを使えば解決しますが)。

Mavenは逆のアプローチで、Mavenのライフサイクルと完全に統合することを期待します。Mavenは、Antで持っていた多くの自由を取り除くので、経験豊富なAntユーザーは、これを特に不快に感じるでしょう。例えば ソナタイプブログ Mavenに対する批判とその対応を列挙しています。

Mavenのプラグイン機構は非常に強力なビルド構成を可能にし、継承モデルは、企業全体のビルド構成をカプセル化した小さな親POMのセットを定義でき、個々のプロジェクトはそれらの構成を継承して軽量化できることを意味します。Mavenの設定は非常に冗長であり(Maven 3はこれに対処することを約束していますが)、もしMavenの方法でないことをしたいのであれば、プラグインを書くか、手間のかかるAnt統合を使わなければなりません。私はMavenのプラグインを書くのが好きですが、多くの人がその労力に反対していることを理解しています。

Gradleは、AntとMavenの間のスイートスポットをヒットすることを約束します。それは アイビー のアプローチで依存関係を解決します。設定よりも慣習を重んじますが、Antタスクも第一級市民として含みます。また、賢明にも、既存の Maven/Ivy リポジトリを使用することができます。

もし、あなたがAnt/Mavenのペインポイントにぶつかり、行き詰まっているのなら、Gradleを試してみる価値はあるでしょう。しかし、プディングの証明は食べることにあるので、製品がもう少し成熟し、他の人があらゆるねじれを解決するまで、私は判断を保留します(彼らは理由のためにそれをブリーディングエッジと呼びます)。しかし、私は自分のおもちゃのプロジェクトでこれを使い続けるつもりです。