50

Maven 3 ベータ版がリリースされてから数週間が経ちました。Maven 3 の機能リストについて意見を求めたいと思います。

  1. ビルド ライフサイクルにおけるプロジェクトの並列実行
  2. カスタム ライフサイクル

他のすべては、バグ修正またはマイナーな改善のようです。それで、あなたはどう思いますか?Maven 3 は待つ価値がありますか?

4

4 に答える 4

75

Maven 3 の新機能 ここでは、ネットで見つけたものを少しまとめます。

  • 後方互換性- Maven 3 は後方互換性があり、これは非常に重要です (特に Maven 1 から Maven 2 への移行を経験した人にとって)。
  • バージョンレスの親要素 - Maven 3 では、サブモジュールで親バージョンを指定する必要がなくなります。これは素晴らしいです( Maven 3.1で)。
  • Mixins - POM コンポジション用 (Maven 3.1 AFAIK)。
  • 属性を使用した XML POM 形式 - 要素の代わりに属性を使用できます。
  • Polyglot Maven - POM ファイルをさまざまな言語で記述できるようになりました (私は個人的に XML 形式に悩まされていないので、これを頻繁に使用するかどうかはわかりません)。
  • 拡張ポイント - ライフサイクルまたはプラグインを装飾するため (プラグインを拡張する代わりに動作をフックするため)。
  • クエリ可能なライフサイクル - 実行計画と実行の分離。
  • プラグイン API の変更 - これは、プラグイン開発者をより対象としています (javadoc タグ、拡張ポイント、クエリ可能なライフサイクルの代わりに注釈)。
  • エラーと整合性のレポートの改善 - エラーがより明確になり、Maven 3 wiki にリンクされて詳細な説明が提供されます。ユーザーはこれを楽しむでしょう。
  • Mercury - アーティファクト解決システムの完全な書き直し (現在は専用製品です)実際、Maven 3 はMercury の代わりにAetherを使用しています。
  • Maven Embedder - IDE およびビルド ツール (ビルド プロセスを「リッスン」できる) に最適です。
  • インクリメンタル ビルドのサポート - 特に M2Eclipse に役立ちます (大幅なパフォーマンスの向上)。
  • Maven コアから抽出されたサイトとレポート -サイトはまだ機能していません (最終リリースで修正される予定です)。
  • Maven shell - 最適化された実行環境 (Maven Shell は最高です).

要約すると、あなたは完全に間違っているわけではありません。表面的にはそれほど多くの変更はありません (ただし、私はエラー報告の改善を本当に楽しんでおり、バージョンのない親要素のものを待ちきれません)。しかし、内部の変更により、Maven 3は大幅に高速化されており、これは非常に大きなことです。そして、新たに提供された可能性によって大きなイノベーションが起こることを期待しています (まだこれからですが)。

最後に、パフォーマンスの向上は私にとって十分価値のあるものであり (より短い時間で構築できることは非常に価値があります)、その他の点はおまけです。また、私はサイト プラグインを広範囲に使用していないため、一部のビルドでは既に 4 か月以上 Maven 3 を使用しており、満足しています。

こちらもご覧ください

于 2010-07-02T14:50:30.093 に答える
1

いいえ、マトリックスが言うように互換性がありません。2 と 3 の間には多くの非互換性があり、ページ ポインティング動作があります。企業でエンタープライズ プロジェクトに取り組んでいる場合、これらの問題に遭遇することは間違いありません。

10k-100k コード ビルドではないエンタープライズ ビルドを実行する場合のパフォーマンスに関しては... 150 万行のシステムはどうですか? それは企業ではより一般的です。ソフトウェアのビルドに 2 ~ 4 時間かかり、引き続き継続的な統合が必要な場合は、並列ビルドとテストを検討します。Maven 3 はその時点で便利です... しかし、この時点では、ツリーの解決/クラスパスが目標によって異なることは受け入れられません (依存関係: ツリーは、通常のビルド目標が Aether に依存しているのに対し、レガシーメカニズムを使用します)。Ivy/Ant の問題を思い起こさせるのは、デプロイ用のソフトウェア パッケージの前にクラスパスのチェックに頼ることができない場合です (本番環境にローカルの Maven リポジトリがありませんよね? ... しかし、それでもソフトウェア監査を実行する必要がありますよね?)

于 2013-01-10T19:13:27.000 に答える
1

Maven 3 のアイデアは、問題なく Maven 2 を置き換えることでした...現在、いくつかあります (特にサイト)。問題が発生するかどうかを確認するために、現在の既存の Maven 2 プロジェクトを Maven 3 でテストすることをお勧めします。内部的には、新しい改善を可能にするために、完全なコードがリファクタリングされています。コアからいくつかの部分を削除しました (サイト生成など)。

于 2010-07-01T11:24:15.193 に答える
0

彼らは「-r」オプションを削除し、それを非常に複雑なシステムに置き換えました。

Mavenは、pomsのコピー/貼り付けを推奨しています。私は彼らが3.0でそれを修正することを望んでいました。彼らはMaven3.1まで「ミックスイン」機能を削除しました。

ビルドのパフォーマンスといくつかのマイナーなバグ修正を除けば、面倒なことをする価値はありません。

于 2011-12-29T16:34:24.763 に答える