1. 概要

Maven Wrapper は、特定のバージョンのMavenを必要とするプロジェクト(またはMavenをまったくインストールしたくないユーザー)に最適です。 オペレーティングシステムに多くのバージョンをインストールする代わりに、プロジェクト固有のラッパースクリプトを使用できます。

この簡単な記事では、既存のMavenプロジェクト用にMavenラッパーをセットアップする方法を示します。

2. Mavenラッパーのセットアップ

プロジェクトで構成する方法は2つあります。最も簡単な方法は、適切なプラグインを使用して自動化するか、手動インストールを適用することです。

2.1. プラグイン

このMavenWrapperプラグインを使用して、単純なSpring Bootプロジェクトに自動インストールを作成しましょう。

まず、プロジェクトのメインフォルダーに移動し、次のコマンドを実行する必要があります。

mvn -N wrapper:wrapper

Mavenのバージョンを指定することもできます。

mvn -N wrapper:wrapper -Dmaven=3.5.2

オプション-Nは、 –non-recursive を意味するため、ラッパーは現在のディレクトリのメインプロジェクトにのみ適用され、サブモジュールには適用されません。

目標を実行すると、プロジェクトにさらに多くのファイルとディレクトリが作成されます。

  • mvnw :完全にインストールされたMavenの代わりに使用される実行可能なUnixシェルスクリプトです
  • mvnw.cmd :上記のスクリプトのバッチバージョンです
  • mvn :MavenWrapperJavaライブラリとそのプロパティファイルを保持する隠しフォルダ

2.2. マニュアル

手動のアプローチでは、上記のファイルとフォルダーを別のプロジェクトから現在のプロジェクトのメインフォルダーにコピーできます。

その後、 .mvn /wrapper /maven-wrapper.propertiesファイルにあるラッパープロパティファイルで使用するMavenのバージョンを指定する必要があります。

たとえば、プロパティファイルには次の行があります。

distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.2/apache-maven-3.5.2-bin.zip

したがって、バージョン3.5.2がダウンロードされて使用されます。

3. ユースケース

ラッパーは、次のようなさまざまなオペレーティングシステムで動作する必要があります。

  • Linux
  • OSX
  • ウィンドウズ
  • Solaris

その後、Unixシステムに対して次のような目標を実行できます。

./mvnw clean install

そして、Windows用の次のコマンド:

mvnw.cmd clean install

ラッパーのプロパティに指定されたMavenがない場合は、システムの $ USER_HOME / .m2 /wrapper /distsフォルダーにダウンロードおよびインストールされます。

Spring-Bootプロジェクトを実行してみましょう。

./mvnw spring-boot:run

出力は、完全にインストールされたMavenの場合と同じです。

注: mvn、の代わりに実行可能ファイル mvnw を使用します。これは、現在Mavenコマンドラインプログラムとして機能しています。

Mavenラッパーとは何かがわかったので、よくある質問の1つに答えましょう。 mvnw ファイルをプロジェクトに追加する必要がありますか?

簡単な答えはノーです。 mvnwファイルは必ずしもプロジェクトの一部ではありません。 ただし、それらを含めることは有益である可能性があります。 たとえば、プロジェクトのクローンを作成している人なら誰でも、Mavenをインストールせずにプロジェクトをビルドできます。

4. 結論

このチュートリアルでは、MavenプロジェクトでMavenラッパーをセットアップして使用する方法を見てきました。

いつものように、この記事のソースコードはGitHubにあります。