Maven-overview

提供:Dev Guides
移動先:案内検索

Maven-概要

Mavenとは何ですか?

Mavenは、開発者に完全なビルドライフサイクルフレームワークを提供するプロジェクト管理および理解ツールです。 Mavenは標準のディレクトリレイアウトとデフォルトのビルドライフサイクルを使用しているため、開発チームはプロジェクトのビルドインフラストラクチャをほとんどすぐに自動化できます。

複数の開発チーム環境の場合、Mavenは非常に短時間で標準に従って作業する方法を設定できます。 プロジェクトのセットアップのほとんどはシンプルで再利用可能なため、Mavenを使用すると、レポート、チェック、ビルド、および自動化セットアップのテストを作成しながら開発者の生活が楽になります。

Mavenは開発者に以下を管理する方法を提供します-

  • ビルド
  • ドキュメンテーション
  • 報告
  • 依存関係
  • SCMs
  • リリース
  • 分布
  • メーリングリスト

要約すると、Mavenはプロジェクトのビルドプロセスを簡素化し、標準化します。 コンパイル、配布、文書化、チームコラボレーション、その他のタスクをシームレスに処理します。 Mavenは再利用性を高め、ほとんどのビルド関連タスクを処理します。

Maven Evolution

Mavenはもともと、ジャカルタタービンプロジェクトの構築プロセスを簡素化するために設計されました。 複数のプロジェクトがあり、各プロジェクトにはわずかに異なるANTビルドファイルが含まれていました。 JARはCVSにチェックインされました。

その後、Apacheグループは、複数のプロジェクトを一緒に構築し、プロジェクト情報を公開し、プロジェクトを展開し、複数のプロジェクト間でJARを共有し、チームのコラボレーションを支援する Maven を開発しました。

目的

Mavenの主な目標は、開発者に以下を提供することです-

  • 再利用可能、保守可能、理解しやすいプロジェクトの包括的なモデル。
  • この宣言モデルと相互作用するプラグインまたはツール。

Mavenプロジェクトの構造とコンテンツは、MOMシステム全体の基本単位であるProject Object Model(POM)と呼ばれるxmlファイルpom.xmlで宣言されます。 後の章で、POMについて詳しく説明します。

設定より規約

Mavenは Configuration よりも Convention を使用します。つまり、開発者は自分でビルドプロセスを作成する必要はありません。

開発者は、すべての構成の詳細に言及する必要はありません。 Mavenは、プロジェクトに適切なデフォルト動作を提供します。 Mavenプロジェクトが作成されると、Mavenはデフォルトのプロジェクト構造を作成します。 開発者はそれに応じてファイルを配置するだけでよく、pom.xmlで設定を定義する必要はありません。

例として、次の表に、プロジェクトのソースコードファイル、リソースファイル、およびその他の構成のデフォルト値を示します。 仮定すると、 $ \ {basedir} はプロジェクトの場所を示します-

Item Default
source code ${basedir}/src/main/java
Resources ${basedir}/src/main/resources
Tests ${basedir}/src/test
Complied byte code ${basedir}/target
distributable JAR ${basedir}/target/classes

プロジェクトをビルドするために、Mavenは、ライフサイクルの目標とプロジェクトの依存関係(Mavenプラグインの機能とデフォルトの規則に依存する)に言及するオプションを開発者に提供します。 プロジェクト管理とビルド関連のタスクの多くは、Mavenプラグインによって維持されます。

開発者は、個々のプラグインがどのように機能するかを理解する必要なく、特定のMavenプロジェクトを構築できます。 Mavenプラグインについては、後の章で詳しく説明します。

Mavenの機能

  • ベストプラクティスに従うシンプルなプロジェクトセットアップ。
  • すべてのプロジェクトで一貫した使用。
  • 自動更新を含む依存関係管理。
  • 大きく成長しているライブラリのリポジトリ。
  • 拡張性があり、Javaまたはスクリプト言語でプラグインを簡単に作成できます。
  • 追加の設定をほとんど、またはまったく必要とせずに、新機能にすぐにアクセスできます。
  • モデルベースのビルド-Mavenは、jar、war、メタデータなどの事前定義された出力タイプに任意の数のプロジェクトをビルドできます。
  • プロジェクト情報の一貫したサイト-ビルドプロセスと同じメタデータを使用して、mavenは完全なドキュメントを含むWebサイトとPDFを生成できます。
  • リリース管理と配布の公開-追加の構成なしで、mavenはCVSなどのソース管理システムと統合し、プロジェクトのリリースを管理します。
  • 下位互換性-プロジェクトの複数のモジュールを古いバージョンのMavenからMaven 3に簡単に移植できます。 古いバージョンもサポートできます。
  • 自動親バージョン管理-メンテナンスのためにサブモジュールで親を指定する必要はありません。
  • 並列ビルド-プロジェクトの依存関係グラフを分析し、スケジュールモジュールを並行してビルドできます。 これを使用すると、パフォーマンスを20〜50%向上させることができます。
  • エラーおよび整合性レポートの改善-Mavenはエラーレポートを改善し、エラーの完全な説明を取得するMaven wikiページへのリンクを提供します。