JavaRush /Java Blog /Random-JA /パート 4: Maven の基本

パート 4: Maven の基本

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

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

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

  2. 次に、ダウンロードしたアーカイブを解凍し、M2_HOME 環境変数を、解凍されたアーカイブの場所へのリンクに設定する必要があります。たとえば、C:\Program Files\maven\

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

    mvn-バージョン

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

  5. 次に、IntelliJIDEA を開いて新しいプロジェクトを作成します。最初のウィンドウで、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 の依存関係のリストに追加するだけです。 依存関係は依存関係 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();
   }
}
後続のすべての依存関係も <dependency> タグ内に記述する必要があります。<dependency> タグ内にライブラリに関してどのような情報を含める必要があるかをどうやって知ることができるのかと疑問に思われるかもしれません。ここではすべてがシンプルです。このような場合、groupId、artifactId、version の 3 つのパラメーターが常に指定されます。これらのパラメータは次の 2 つの方法で確認できます。
  1. 図書館のウェブサイトにあります。Apache Commons IO が必要な場合は、公式 Web サイトにアクセスし、[依存関係情報] タブを選択します。必要な情報はすべてここにあります。これをコピーして依存関係セクションに追加するだけです。

  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 があるのになぜこれが必要なのでしょうか? しかし、そうではありません。まず、アプリケーションを構築する必要があるサーバーには、開発環境だけでなく、グラフィカル インターフェイスも備えていない場合があります。次に、大規模なプロジェクトでは、Maven はプロジェクトを組み立てるタスクにより適切に対処します。したがって、待ち時間に苦しむのではなく、Maven を使用してアプリケーションを構築するプロセスを検討してみましょう。

フェーズ

アプリケーションを構築するプロセスは Maven プロジェクトのライフサイクルと呼ばれ、いくつかのフェーズで構成されます。右上隅にある [Maven] > [example] > [Lifecycle] をクリックすると、IDEA でそれらを確認できます。 パート 4. Maven の基本 - 5ご覧のとおり、9 つのフェーズがあります。
  1. clean - ターゲット ディレクトリ (完成したアーティファクトが保存される場所) からコンパイルされたすべてのファイルを削除します。
  2. 検証 - プロジェクトの構築にすべての情報が利用可能かどうかを確認します。
  3. コンパイル - ソース コードを含むファイルがコンパイルされます。
  4. test — テストが開始されます。
  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 サイトでご覧いただけます。ただし、サードパーティのリソースにはまだ多くのカスタム プラグインがあることに注意してください。もちろん、特殊なニーズがあれば、いつでもそのようなプラグインを自分で作成する機会があります。

プラグイン

Maven プラグインをプロジェクトに追加するには、依存関係と同様に、その説明を pom.xml の <build> タグと <plugins> タグ内に配置する必要があります。たとえば、すべての外部ライブラリが最新バージョンを使用していることを確認するプラグインが必要です。インターネットで少し検索すると、このプラグインと使用手順が見つかります。groupId、artifactId、バージョンを設定しましょう。彼がどのような目標をどの段階で達成しなければならないかを書き留めてみましょう。この例では、現在の 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. サーブレット。単純な Web アプリケーションの作成 パート 6. サーブレット コンテナー パート 7. MVC (Model-View-Controller) パターンの紹介 パート 8. 小さな Spring-Boot アプリケーションの作成
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION