アプリケーションのビルド プロジェクトで多くのアイビー ファイルを見てきました。アイビーとアリとの関係は?
4 に答える
Ivyは、開発プロセス中に外部ライブラリを管理するための Ant 拡張機能であり、それらをクラスパスに追加したり、アプリケーション ビルドにバンドルしたりする方法を提供します。
Maven が行うことと重複する部分もありますが、Ivy ははるかに軽量です (そして、それほど多くはありません)。
Ivyは依存関係マネージャーです。プロジェクトが依存する JAR ファイルを管理および制御します。JAR がない場合は、デフォルトで (Maven 2 リポジトリから)プル ダウンされます。これにより、プロジェクトのセットアップが非常に簡単になります。
Ivy はもともとJayasoft.fr の製品であり、当時は BSD ライセンスの下にありましたが、Ivy のコアは常に同じでした:依存関係管理ツールです。
Ivy と Ant の関係は、それが Ant を介して行われるという意味での Ant 拡張ですが、実際にはそれに依存していません (明白な部分を超えて)。Ivy は、2007 年 10 月 11 日のインキュベーション プロセスを通じて、サブプロジェクトとして Ant の下の Apache プロジェクトにマージされました。
非常によくある誤解は、Ivy を Maven 全体と比較するというものです。ただし、Ivy は依存関係をアジャイルな方法で処理するだけであり、Maven は実際にはそれ自体がビルド システムであるのに対し、Ant を介した単純な構成とさまざまなビルド システムなどによる幅広い自動化サポートを備えているため、それは実際には機能しません。個人的な意見は、どちらが最善を尽くすかという点で異なる場合があり、実際に異なる場合があり、それ自体でいくつかの Stackoverflow/Google 検索の価値があります。
これらは、追加する重要で有用なポイントだと思います。
- Ivy は、Ant なしでコマンド ラインからスタンドアロンで使用できます。CI 環境に Ant が含まれていない場合でも、Ivy を使用できなくなるわけではありません。はい、Ant との統合は優れており、文書化もはるかに優れています。ただし、Ant 統合ドキュメントをスタンドアロンの使用に適用することはできます。
- Ivy は Java だけのものではありません。私のチームはこれを使用して、かなり大きな .NET プロジェクト (複数のサード パーティのアップストリーム依存関係を持つ実稼働環境に複数のバージョンがある 10 個の相互依存パッケージ) の依存関係を定義することに成功しています。非常にうまく機能します。ドキュメントがもう少し明確で充実していればいいのにと思います。
- Build Time に対して Ivy が提供する追加の特典があります。上流および下流のビルドのトリガーです。