Maven の概要とインストール方法、使い方をわかりやすく解説

Maven は、Java アプリケーションの構築、テスト、パッケージ化、デプロイに使用できる人気のある Java プロジェクト管理ツールです。この記事では、Maven の概念、インストール構成、使用法、ライフサイクル、および IDEA が Maven を統合する方法について紹介します。

メイブンのコンセプト

Maven は、プロジェクト オブジェクト モデル (POM) ベースのビルド ツールです。POM は、プロジェクト名、バージョン番号、依存ライブラリ、ビルド ターゲットなどのプロジェクト情報と構成を含む XML ファイルです。Maven は、POM ファイルを読み取ることによって Java プロジェクトを管理および構築します。

Maven の主な機能は次のとおりです。

  • 依存関係の管理: Maven は、プロジェクトに必要な依存ライブラリを自動的にダウンロードして管理できます。
  • ビルド管理: Maven は、プロジェクトのビルド、テスト、パッケージ化、デプロイメントを自動化できます。
  • ライフサイクル管理: Maven は、プロジェクト構築のさまざまなフェーズを自動化する一連のビルド フェーズとプラグインを定義します。
  • マルチモジュール プロジェクトの管理: Maven は複数のサブプロジェクトを管理でき、複数のプロジェクトを同時にビルドおよびテストできます。

 マスターすべき Maven 関連の概念:

Maven では構成ではなく規約を使用するため、開発者が自分でビルド プロセスを作成する必要がなくなりました。

開発者は、構成のあらゆる詳細を気にする必要がなくなりました。Maven は、プロジェクトに適切なデフォルト動作を提供します。Maven プロジェクトを作成するとき、Maven はデフォルトのプロジェクト構造を作成します。開発者はファイルを適切に配置するだけで済み、pom.xml で構成を定義する必要はなくなりました。

たとえば、以下の表は、プロジェクトのソース コード ファイル、リソース ファイル、およびその他の構成のデフォルト構成を示しています。${basedir} プロジェクト ディレクトリを表すと想定されます 。

Maven のインストールと構成

(1) Maven のインストールと設定は非常に簡単です。まず、公式 Web サイト ( https://maven.apache.org/ )に Maven パッケージをインストールする必要があります (例: apache-maven-3.3.9-bin.zip)。

(2) インストール パッケージを解凍し、中国語のディレクトリではなくディレクトリに解凍します。

  • サブディレクトリ bin: プログラム (主に mvn.md) を実行します。
  • サブディレクトリ conf: Maven ツール自体の設定ファイル settings.xml

(3) 環境変数の設定

システムの環境変数で、M2_HOME の名前を指定し、その値を Maven ツールのインストール ディレクトリ (bin の前のディレクトリ M2_HOME=D: work\maven_work\apache-maven-3.3.9) として指定し、M2_HOME をpath 、すべてのパスの前に %M2_HOME%\bin を追加します
(4) 検証、ターミナルのコマンド ラインで mvn-v を実行します


注: JAVA_HOME を構成し、jdk パスを指定する必要があります。 

Mavenの使用

1. pom: プロジェクト オブジェクト モデル

つまり、Project Object Model プロジェクト オブジェクト モデルです。Maven はプロジェクトの構造とコンテンツをモデルに抽象化し、構築と記述を容易にするために XML ファイルで宣言されます。このモデルはプロジェクトのルート ディレクトリに配置され、ファイル名は pom.xml です。pom.xml は Maven の魂です。したがって、Maven 環境をセットアップした後の学習と操作はすべて pom.xml に関するものになります。

POM の例:

<project xmlns="http://maven.apache.org/POM/4.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
   http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>com.companyname.project-group</groupId>
   <artifactId>project</artifactId>
   <version>1.0</version>

</project>

各プロジェクトには POM ファイルが 1 つだけ存在する必要があることに注意してください。

  • すべての POM ファイルには、 プロジェクト 要素と 3 つの必須フィールド ( groupId、artifactId、version )が必要です。
  • ウェアハウス内のプロジェクト識別子は groupId:artifactId:versionです。
  • POM.xml のルート要素は projectで、これには 3 つの主要な子ノードがあります。

2. 合意されたディレクトリ構造

 以下はプロジェクトのプロジェクト ディレクトリです。

3. ライフサイクル

 4. 倉庫

(1) ウェアハウスとは: ウェアハウスは物を保管するためのもので、Maven で使用される jar やプロジェクトで使用される jar を保管します。Maven の用語では、ウェアハウスとは、すべてのプロジェクト jar ファイル、ライブラリ jar ファイル、プラグイン、またはその他のプロジェクト固有のファイルを保存できるディレクトリなどの場所です。

  • Maven で使用されるプラグイン (さまざまな jar)
  • プロジェクトで使用される jar (サードパーティ ツール)

(2) 倉庫の分類:

  • ローカル ウェアハウスは、さまざまな jar を保存するパーソナル コンピューター上のフォルダーです。
  • リモート倉庫、インターネット上、インターネットのみで利用できる倉庫
    • 中央ウェアハウス、最も権限があり、すべての開発者が共有する集中ウェアハウス、中央ウェアハウスのアドレス: https://repo.maven.apache.org
    • 中央倉庫の鏡像は中央倉庫のバックアップであり、すべての大陸の重要な都市は鏡像です。
    • プライベート サーバーは社内およびローカル エリア ネットワーク内で使用され、社外で使用されるものではありません。

(3) 倉庫の使用、Maven 倉庫の使用には手動操作は必要ありません。

 好き:

開発者は mysql ドライバーを使用する必要があります ---> Maven は最初にローカル ウェアハウスをチェックします ---> プライベート サーバー ---> ミラー ---> 中央ウェアハウス

 

5. 外部依存関係

Maven の依存関係管理では、  Maven リポジトリの 概念が使用されます。しかし、リモート ウェアハウスとセントラル ウェアハウスで依存関係を満たすことができない場合、どのように解決すればよいでしょうか? Maven は、外部依存関係の概念を使用してこの問題を解決します。

  • srcフォルダーの下にlibフォルダーを追加
  • jar ファイルを lib フォルダーにコピーします。LDAP 操作用のヘルパー ライブラリである ldapjdk.jar を使用しています。

これで、プロジェクトの構造は次のようになります。

 この外部依存関係を maven  pom.xmlに追加します 。

 <dependency>
      <groupId>ldapjdk</groupId>
      <artifactId>ldapjdk</artifactId>
      <scope>system</scope>
      <version>1.0</version>
      <systemPath>${basedir}\src\lib\ldapjdk.jar</systemPath>
 </dependency>

6. 依存関係の範囲 

 7. mvn コンパイル コンパイル

mvn COMPILEを実行すると、プロジェクトのルートディレクトリ下にターゲットディレクトリ(結果ディレクトリ)が生成され、MavenによってコンパイルされたJavaプログラムが生成され、ターゲットディレクトリに最終的なクラスファイルが配置されます。

 共通操作

1. プロパティ設定:Mavenの共通プロパティを設定します。

 

 2. グローバル変数

カスタム属性

1. <properties> のカスタム タグを使用して変数を宣言します (タグ名は変数名です)
2. pom.xml ファイルの他の場所で、${tag name} を使用して変数の値を使用して
グローバル変数をカスタマイズします。通常、依存関係を定義します。バージョン番号。プロジェクト内で複数の同じバージョン番号を使用する場合は、最初にグローバル変数定義を使用し、次に ${変数名} を使用します。

 3. リソースリソースプラグイン

 機能: この機能は mybatis コース 1 で使用されます。
リソースがデフォルトで使用されない場合、maven がコンパイルされたコードを実行すると、src/main/resources ディレクトリー内のファイルが target/classes ディレクトリーにコピーされます。src/main/java ディレクトリ内の非 Java ファイルは処理されず、target/classes ディレクトリにもコピーされません 2.
プログラムでは、いくつかのファイルを src/main/java ディレクトリに置く必要があります。 java プログラムでは、src/main/java 日記内のファイルを使用する必要があり、src/main/java ディレクトリ内のプログラムを mvn コンパイルするときにファイルを tarqet/classes にコピーする必要があることを Maven に伝える必要があります。 <resources> を build> に追加します。

Maven を統合するアイデア

1. ideaにmavenを設定し、ideaとmavenを併用させます。

Idea には組み込みの Maven がありますが、組み込みの Maven 設定を変更するのは不便なので、通常は使用されません。自分でインストールした Maven を使用する場合は、idea のデフォルト設定をオーバーライドする必要があります。アイデアに Maven のインストール場所とその他の情報を指定させます

 2. 共通プロジェクトテンプレート作成プロジェクト
maven-archetype-quickstart: 通常の Java プロジェクト

maven-archetype-webapp : Web プロジェクト
 

おすすめ

転載: blog.csdn.net/weixin_44863237/article/details/130439189