CodeGym /Java Blog /ランダム /パート 4. Maven の基本
John Squirrels
レベル 41
San Francisco

パート 4. Maven の基本

ランダム グループに公開済み
この資料は「エンタープライズ開発入門」シリーズの一部です。以前の記事: パート 4. Maven の基本 - 1Mavenはプロジェクトを管理および構築するためのツールであり、Java プログラマーの役立つアシスタントです。これにより、プロジェクト構造の作成から必要なライブラリの接続、サーバーへの製品のデプロイに至るまで、開発者の作業があらゆる段階で楽になります。フレームワークを使用する場合は、Maven を使用する必要があります。そこで、今日はその主な機能とその使用方法を見てみましょう。

Maven の段階的なインストール

  1. まず、Maven をインストールする必要があります。このリンクからダウンロードしてください。

  2. 次に、ダウンロードしたアーカイブを解凍し、M2_HOME 環境変数を解凍したアーカイブの場所に設定します。たとえば、C:\\Program Files\\maven\\

  3. すべてがインストールされていることを確認するには、コマンド ラインで次のコマンドを実行します。

    mvn -バージョン

  4. MavenやJavaなどのバージョン情報が表示されれば準備完了です。

  5. 次に、IntelliJ IDEA を開いて新しいプロジェクトを作成します。最初のウィンドウで、Maven を選択します。

    パート 4. Maven の基本 - 2
  6. 「次へ」をクリックし、表示されるウィンドウに次の情報を入力します。

    パート 4. Maven の基本 - 3
  7. 次に、通常どおり、必要な場所にプロジェクトを作成します。

    プロジェクトが作成されたら、その構造に注目してください。

    パート 4. Maven の基本 - 4
これはMaven プロジェクトの標準構造です。
  • src /main/javaフォルダーには Java クラスが含まれています
  • src /main/resourcesフォルダーには、アプリケーションで使用されるリソース (HTML ページ、画像、スタイル シートなど) が含まれています。
  • src /testフォルダーはテスト用です
pom.xmlというファイルにも注目してください。これはMaven を管理するためのメイン ファイルです。プロジェクトの説明全体がここに含まれています。現時点ではあまり情報がありませんが、随時追加していきます。

Maven での依存関係の管理

「依存関係マネージャー」という言葉を聞いたことがあるかもしれません。Maven は依存関係を管理する方法を知っています。Maven のおかげで、インターネットで必要なライブラリを検索し、ダウンロードして、プロジェクトに接続するのに多くの時間を費やす必要がなくなります。代わりに、必要なライブラリを Maven の依存関係のリストに追加するだけです。

依存関係は、pom.xml ファイルの依存関係ノードで指定されます。

ファイルの操作を簡素化するために、プロジェクトに Apache Commons IO ライブラリが必要だとします。ライブラリを追加するには、pom.xml に次の 5 行を記述します。

<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
これで、pom.xml ファイルは次のようになります。

  <?xml version="1.0" encoding="UTF-8"?>
<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>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
その後、IntelliJ IDEA が依存関係をインポートできるようにします (右下隅にダイアログが表示されます)。これでライブラリを使用する準備が整いました。

import org.apache.commons.io.FileUtils;

import java.io.File;

public class TestMaven {
   public static void main(String[] args) {
       File tempDirectory = FileUtils.getTempDirectory();
   }
}
後続のすべての依存関係もタグ内に記述する必要があります<dependencies>。タグ内に指定する必要があるライブラリに関する情報をどのように調べればよいのか疑問に思われるかもしれません<dependency>。それは簡単です。「groupId」、「artifactId」、「version」の 3 つのパラメータを常に設定する必要があります。これらのパラメータを決定するには 2 つの方法があります。
  1. 図書館のウェブサイトにあります。Apache Commons IO ライブラリが必要な場合は、公式 Web サイトにアクセスし、[依存関係情報] タブを選択します。必要な情報はすべてここにあります。これをコピーしてノードに追加するだけです<dependencies>

  2. Maven リポジトリ内。検索バーに「apache commons io」と入力すると、ライブラリの利用可能なすべてのバージョンが表示されます。正しいものを選択したら、以下をコピーするだけです。

    
    <dependency>
               <groupId>commons-io</groupId>
               <artifactId>commons-io</artifactId>
               <version>2.6</version>
           </dependency>
    

    それを pom.xml に追加します。

Maven リポジトリの種類

Maven リポジトリについては、もう一度言及する価値があります。実際には、リモート(中央) リポジトリとローカル (コンピュータ上) リポジトリの 2 つがあるためです。プロジェクトに追加したすべてのライブラリはローカル リポジトリに保存されます。Maven が必要な依存関係をプロジェクトに追加するとき、まずライブラリがローカル リポジトリにすでに存在するかどうかを確認します。ライブラリがローカルに見つからない場合にのみ、リモート リポジトリにアクセスします。ご覧のとおり、Maven を使用して依存関係を追加できますが、これができることのすべてではありません。

Maven を使用した Java プロジェクトのビルド

この機能は初心者にとっては無意味に思えるかもしれません。IDE があるのになぜこれが必要なのでしょうか? 説明しましょう。まず、アプリケーションを構築する必要があるサーバーには、開発環境もグラフィカル インターフェイスも備えていない可能性があります。第 2 に、大規模なプロジェクトでは、Maven がより適切にプロジェクトを構築します。そこで、これ以上はやめずに、Maven を使用してアプリケーションを構築するプロセスを検討します。

フェーズ

アプリケーションを構築するプロセスは Maven プロジェクトのライフサイクルと呼ばれ、いくつかのフェーズで構成されます。IDEA でそれらを確認するには、右上隅にある [Maven] > [example] > [Lifecycle] をクリックします。 パート 4. Maven の基本 - 5ご覧のとおり、9 つのフェーズがあります。
  1. clean — ターゲット ディレクトリ (完成したアーティファクトが保存される場所) からすべてのコンパイル済みファイルを削除します。
  2. validate — プロジェクトのビルドに必要な情報がすべて存在するかどうかを確認します。
  3. コンパイル — ソースコードファイルをコンパイルします
  4. テスト — テストを開始します
  5. package — コンパイルされたファイル (JAR、WAR などのアーカイブ内) をパッケージ化します。
  6. verify — パッケージ化されたファイルの準備ができているかどうかを確認します
  7. install — パッケージをローカル リポジトリに配置します。他のプロジェクトで外部ライブラリとして使用できるようになりました
  8. サイト — プロジェクトのドキュメントを作成します
  9. デプロイ — 構築されたアーカイブをリモート リポジトリにコピーします
すべてのフェーズは順番に実行されます。たとえば、フェーズ 1 ~ 3 が完了するまで 4 番目のフェーズを開始できません。フェーズを開始するには 2 つの方法があります。
  • コマンドライン経由:

    mvn パッケージ

    パート 4. Maven の基本 - 6
  • IntelliJ IDEA を使用:

    パート 4. Maven の基本 - 7

    パッケージフェーズが開始される前に、検証、コンパイル、テストのフェーズが実行されます。クリーンフェーズは例外です。プロジェクトの各ビルドの前にこのフェーズを実行することをお勧めします。複数のフェーズをスペースで区切ってリストできます。

    mvnクリーンパッケージ。

また、各フェーズには前フェーズと後フェーズがあります。たとえば、デプロイ前、デプロイ後、クリーン前、クリーン後などですが、これらが使用されることはほとんどありません。さらに、各フェーズには目標があります。標準目標はデフォルトで設定されています。追加の目標は Maven プラグインによって追加されます。フェーズ中に、追加の機能を実行する必要がある場合があります。これには Maven プラグインがあります。公式プラグインのリストは、 Maven Web サイトにあります。ただし、サードパーティの Web サイトにはカスタム プラグインが多数あることを知っておく必要があります。そしてもちろん、特殊なニーズが生じた場合には、いつでも自分でカスタム プラグインを作成できます。

プラグイン

プロジェクトに Maven プラグインを追加するには、依存関係を追加した場合と同様に、<build>とタグを使用して、その説明を pom.xml ファイルに追加する必要があります。<plugins>たとえば、すべての外部ライブラリの最新バージョンを使用していることを確認するプラグインが必要だとします。インターネットで少し検索すると、このプラグインとその使用方法が見つかります。groupId、artifactId、バージョンを設定しましょう。プラグインがどのような目標をどのフェーズで達成する必要があるかを示します。この例では、現在の pom.xml の依存関係チェックが検証フェーズ中に行われるように設定されています。pom.xml ファイルは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<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>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <build>
       <plugins>
           <plugin>
               <groupId>com.soebes.maven.plugins</groupId>
               <artifactId>uptodate-maven-plugin</artifactId>
               <version>0.2.0</version>
               <executions>
                   <execution>
                       <goals>
                           <goal>dependency</goal>
                       </goals>
                       <phase>validate</phase>
                   </execution>
               </executions>
           </plugin>
       </plugins>
   </build>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
私たちはプロジェクトに取り組み続けることができました。ただし、Apache Commons IO のバージョンを 2.0 に変更してプロジェクトをビルドしてみましょう。いただきます

[ERROR] Failed to execute goal com.soebes.maven.plugins:uptodate-maven-plugin:0.2.0:dependency (default) on project example: There is a more up-to-date version ( 2.6 ) of the dependency commons-io:commons-io:2.0 available. -> [Help 1]
ここでは、プラグインによって生成されたビルド エラーがあります。エラー メッセージには、バージョン 2.6 が利用可能な場合にバージョン 2.0 を使用していることが示されています。基本的に、Maven は非常に便利なツールです。最初は使いにくいと思うかもしれませんが、練習してください。Maven を使用してプロジェクトを作成すると、しばらくすると、最終結果に非常に満足できるでしょう。この記事では、Maven に関する多くの詳細を意図的に省略しました。最も重要な点に焦点を当てました。しかし、改善に限界はありません。Maven の詳細については、公式 Web サイトで読むことができます。 パート 5. サーブレットと Java サーブレット API。単純な Web アプリケーションの作成 パート 6. サーブレット コンテナー パート 7. MVC (Model-View-Controller) パターンの紹介
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION