最近、Gradleをビルドシステムとして使用し始めました。 Gradleのは、AntとMavenのの同類となす 彼ら最初の比較は、Mavenのは、、宣言ビルドシステムであるのに対し、 Antは不可欠ビルドシステムは、ということです。 Gradleは宣言的なビルドシステムであり、Mavenによって強制されることはありません。 命令型ビルドシステムと宣言型ビルドシステム
は、私はこれらの用語 、宣言と不可欠それがビルドシステムの話になると、より良い を理解したかったです。答えて
つまり、antスクリプトは、antツールに何をするかを伝えます。 - "これらのファイルをコンパイルし、そのフォルダにコピーしてから、このフォルダの内容を取り出してアーカイブを作成します。
のmaven pom
は、我々は結果として持っていたいものを宣言していますが - 「ここにプロジェクトが依存ライブラリの名前であり、我々はWebアーカイブを生成したいと思います」。 Mavenはライブラリのフェッチ方法とソースクラスをどこに見つけるかを知っています。
antはあなたに柔軟性を与えてくれますが、ホイールを常に再開発しなければなりません。
反対側のMavenは設定が少なくて済みますが、特に別のワークフローに慣れている場合は、制約がかかる可能性があります。
EDIT: ANT-mavenの比較の重要な側面は、アリがそうではないのMavenは、依存関係がどこたアーティファクトを置くために、発見された大会、ファイルがあるべき場所、記述を持っているということです。
あなたはバスに乗るのと同じようにmavenを使うと考えることができます。あなたが入る場所と出る場所を選択します。アリを使用することは車を運転するようなものです - あなたはそれを自分で行う必要があります。あなたはバスドライバーに何をすべきかを伝える必要はありませんが、停留所は行きたいところから遠すぎるかもしれません。
EDIT2:「ホイールのメタファーを再活性化することは、私が望んでいたよりもあまり明確ではないようです。
わかりやすいデフォルト/表記規則がない場合、プロジェクトごとに明示的にプロジェクト構造とビルドライフサイクルを定義する必要があります。しばしば、それを趣味や意見の対象にします。チームや企業によって環境設定が異なるため、ビルドプロセスも同様です。これには、新しいプロジェクトメンバーや後のメンテナーにとってより多くの認知的努力が必要です。開発者の経験と専門知識に応じて、最終的な解決策は拡張して使用するのが難しいかもしれません。
以下のコメントで述べたように、アリビルドのベストプラクティスは存在しますが、それでも各プロジェクトごとに実装する必要があります。また、プロジェクトからプロジェクトにコピーする必要があります。ビルドツール自体のデフォルト。
私の好みのトレードオフの反対側では、Mavenは少し遠すぎます。デフォルトを変更するのは簡単ではありません。
- 1. 宣言型プログラミングと命令型プログラミングの違いは何ですか?
- 2. 命令型と疑問型のメソッド
- 3. は命令的宣言ポリマー
- 4. PHPビルドシステム
- 5. HTMLのビルドシステム2
- 6. リモート自動ビルドシステム
- 7. クラス宣言とインスタンス宣言の型キーワード
- 8. PHPソース管理とビルドシステム
- 9. Mono/Cのドキュメントとビルドシステム#
- 10. Data.Map型宣言
- 11. ダイナミック型宣言
- 12. 再帰的ビルドシステムから非再帰ビルドシステムへの変更
- 13. アクセス崇高なテキスト内の別のビルドシステムからのビルドシステム2
- 14. 型宣言エラー:[Char]と[[Char]]
- 15. 変数宣言とデータ型
- 16. 空の型宣言
- 17. 型宣言pythonエラー
- 18. Haskellの型宣言
- 19. Haskellの型宣言
- 20. 角型モジュール宣言
- 21. Javaインター型宣言
- 22. 宣言できませんKubernetes API型宣言の型式
- 23. 宣言型サービスを参照していない宣言型サービス
- 24. 特権命令例外は、int型
- 25. 角型命令 - NgModelCtrl Parser問題
- 26. デバッグとリリース用とsrcディレクトリ用のビルドシステム
- 27. パラメータ内の型宣言型アサーション
- 28. 列挙型宣言でint型の値
- 29. 型エイリアス宣言のHaskell型クラス
- 30. Android-NDKビルドシステム(hello-gl2ビルド)
私はAntで作業していませんが、そのようなものはすでに正しく解決されているはずですか?Antのプラグインのいくつかのように、より多くのプロジェクトで同じことがありますか? –
@AnkitDhingra私は、Antでよく練習するのは、前回動作した設定をコピー・ペーストすることです:ベスト・プラクティスはありますが、それでも実装する必要があります。編集 – kostja
@AnkitDhingraを参照してください。ホイールを再発明するのは本当に好きではありません。 – kostja