web-dev-qa-db-ja.com

MavenまたはIvy?すでに運用されているシステムのどちらが良いですか?そして、他の違いは?

これは複雑な質問であることは知っていますが、多くのバグと本当に悪いデザインを備えたシステムの場合、どちらが良いかを知りたいと思います。本当に混乱。

実際、このプロジェクトをすでにMavenに変換しており、多くの問題に直面しているため、これを求めています。フォルダー構造を調整し、会社で作成されたひどいフレームワークをプロジェクトから分離し(jar libに変換された)、常にプロジェクトを壊していた多くの詳細を修正し、すべてを行うためにPOM.xmlを構成する必要がありましたAntがすでに実行していて、バージョンとしてアプリケーションで実際に使用されているライブラリを検出します(ライブラリの大部分はバージョン番号なしで名前が変更され、マニフェストファイルは空でした)。

まあ、それは本当に地獄でした。私はこの作業中に夢中になり、いつも私に続いていた質問は「そしてもしそれをIvyに変換していたら?もっと簡単だろう?.

私はIvyで作業したことはありませんが、Antで動作することを知っているので、Mavenよりもプロジェクトを適応させる方が簡単です。一方、MavenはWord全体で使用されています(私は間違っていますか?)。これには理由が必要です。

だからそれは私の質問です:

  • Jenkinsとの統合/ハドソン:Ivyの場合、Mavenの場合と同じくらい簡単ですか?
  • Sonar plugin:上記と同じ質問。統合は簡単ですか?
  • Plugin for Eclipse:これはMavenの非常に弱い点です。プラグインはひどいですが、アイビーのものは知りません。
  • デプロイプロセス:設定がすべて完了したら、mavenを使用してプロジェクトをデプロイして公開するのは非常に簡単です。そして、アイビーと?
  • 変換:まあ、プロジェクトをMavenに変換する私の経験はひどいものでしたが、システムは助けにはなりませんでした。私が持っていた選択肢は、Mavenが新しいプロジェクト、Mavenが作成されてからMavenで作業するプロジェクトには素晴らしいことでしたが、大きくて組織化されていないプロジェクトがある場合は良い選択ではありませんでした。私が間違っている?
  • プラグイン:それがPOM.xmlに設定される多くのプラグインであること。 Ivyには非常に多くのオプションがありますか?
  • 人気:どちらがより人気がありますか?どちらがより使用され、なぜですか?

まあ、これです。どうもありがとう!

49
Pmt

まず、IvyのWebサイトから Ivy/Mavenの比較 を読んでください。重要な情報:

まず、最も重要な違いは、それらがまったく同じ種類のツールではないことです。 Apache Mavenはソフトウェアプロジェクト管理および理解ツールですが、Apache Ivyは依存関係管理ツールにすぎず、一般的なビルド管理ツールであるApache Ant™と高度に統合されています。そのため、より興味深い比較では、Apache Ant + IvyとApache Mavenを比較します。しかし、これは依存関係管理のみに焦点を当てたこのページの範囲を超えています。

Ivyは依存関係管理機能をAntに追加するため、実際に使用するビルドシステムに関する質問は次のいずれかです。

  • ivy/Antを使用
  • mavenに移行する

ビルドがAntを使用してalreadyである場合、ビルドスクリプトを別のビルドシステムに移植する必要がないため、Ivyの移行が容易になります。

Mavenに移行する場合は、ビルドスクリプトを書き直し、すべてをMaven化するとともに、依存関係管理を構成する必要があるため、より多くの労力が必要になります。

また、依存関係管理設定をIvy/AntからMavenに移植する方が簡単な場合は、その方向に進むことになります。そのため、Ivy依存関係管理は、長期的にはMaven構成に移行するための良い足がかりになるでしょう。

70
prunge