コンセプト
Mavenは、Javaの依存関係管理ツールです。いわゆる依存関係とは、Java開発プロセスで導入されたさまざまなjarパッケージとサードパーティライブラリを指し、これらのライブラリはこの州の他のライブラリを指すこともあるため、直接依存関係と直接呼ばれ、ライブラリ依存関係は間接依存関係と呼ばれます。これらの依存関係を手動で導入すると、プロセスが非常に煩雑になるため、これらの依存関係を管理および導入するための倉庫Mavenが必要です。各依存パッケージは、 Mavenではコンポーネントと呼ばれます。
では、どのようにして倉庫から各コンポーネントを正確に見つけるのでしょうか?これは、座標を介して実行する必要があります。Mavenウェアハウスの座標は、groupId、artifactId、およびversionで構成されます。groupIdは会社名、artifactIdはプロジェクト名、versionはプロジェクトのバージョン番号、packageは作成する必要のあるパッケージの名前です。つまり、Mavenリポジトリーで依存関係を探す場合、最初に会社名groupIdを見つけ、次にプロジェクト名を見つけ、最後にバージョン番号を見つけて、依存関係を一意に決定します。
Mavenの倉庫は、ローカルウェアハウスとリモートウェアハウスに分かれています。ローカルウェアハウスとは、Mavenが依存関係パッケージをローカルの場所にダウンロードすることを意味します。依存関係を検索するときは、最初にローカルウェアハウスを見つけます。見つからない場合は、オンラインのリモートウェアハウスに戻って検索してダウンロードします。 。全員が同じMaven倉庫にアクセスすると、負荷がかかりすぎてアクセスが遅くなるため、Mavenは、さまざまな場所にミラーウェアハウスを提供し、近くに人々がアクセスできるようにします。
Mavenには多くのプラグインも用意されています。このプラグインを使用して、プロジェクトの構築、コンパイル、パッケージング、その他の操作を簡単に完了できます。
Mavenでは、AがBに依存し、BがCに依存し、CがDに依存し、AがEに依存し、EもDに依存している場合、AはDに依存します。2つの依存関係がAに近い場合、依存関係の解決の順序に依存します。
インストールと構成
インストール:まず、必要なMaven圧縮パッケージをMaven公式Webサイトからダウンロードしてから解凍し、最後に解凍されたディレクトリのbinフォルダーをPATHパスに追加して、コマンドラインでmvn --vを使用してバージョン番号を表示します。
リポジトリを構成します。maven/ conf / settings.xmlファイルを編集し、ローカルリポジトリの場所を<localRepository>タグで指定します。
<localRepository>D:/Java/maven/repository</localRepository>
国内ミラーソースを追加:国内ミラーソースからの依存関係のダウンロードは、デフォルトのダウンロードソースを直接使用するよりも高速です。次のように、<mirros>タグでAlibaba Cloudのミラーソースとして構成します
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public </url>
</mirror>
</mirrors>
プロジェクトを作成する
mavenの一般的に使用されるコマンドは次のとおりです。
mvn -compile |
プロジェクトをコンパイルする |
mvn -test |
試験項目 |
mvn -package |
プロジェクトをパッケージ化する |
mvn -install |
jarパッケージをローカルウェアハウスにインストールする |
mvn -clean |
コンパイルされたオブジェクトファイルを削除する |
archetypeプラグインを使用してプロジェクトを作成します。コマンドラインでmvn archetype:generateと入力して、Mavenプロジェクトを自動的に作成します。以下に示すように、作成するMavenタイプ番号を選択し、groupId、artifactId、バージョン、パッケージなどを入力するよう求められます。
コマンドラインでgroupId、artifactId、バージョン、パッケージなどを指定することもできます
mvn archetype:generate -DgroupId=com.tory -DartifactId=spring-mvc-study -DarchetypeArtifactId=maven-archetype-webapp
最後に、jettyコンテナーを使用してプロジェクトを実行します。mvnjetty:run、pomにjettyプラグインを導入する必要があることに注意してください。もちろん、Tomcatプラグインを導入してコンテナーでプロジェクトを実行することもできます。
IntelliJ IDEAでMavenプロジェクトを作成する方が簡単です。まず、IDEAでMavenを構成します:Open-> File | Settings | Build、Execution、Deployment | Build Tools | Maven in IDEA、mavenに対応する次の3つのオプションバーを構成しますインストールディレクトリ、構成ファイル、およびウェアハウスディレクトリ
次に、Mavenプロジェクトを作成し、[ファイル]、[新規]、[プロジェクト]の順にクリックして次のインターフェースをポップアップ表示し、Mavenタイプを選択して[次へ]をクリックします。テンプレートを作成する必要がある場合は、アーキタイプから作成をチェックして、目的のテンプレートを選択できます
次に、プロジェクトの名前と場所を設定し、GroupId、ArtifactId、バージョン情報を設定します
最後に、maven情報を選択し、「完了」をクリックして完了します
pom.xmlファイル
POMはProject Object Modelの略です。Mavenプロジェクトを作成すると、依存関係を管理するためにpom.xmlファイルがルートディレクトリに生成されます。以下に示すように、
まず、<modelVersion>はPOMのバージョンを指定します。
<groupId>、<artifactId>、<version>はそれぞれプロジェクトの3つの座標を指定します。groupIdは通常「会社名。プロジェクト名」で構成され、artifactIdは「プロジェクトモジュール名」で構成されます。バージョンは通常3桁で構成され、最初の桁はメジャーバージョン番号を表し、2桁目はブランチのバージョン番号を表し、3桁目はマイナーバージョン番号を表します。次のスナップショットはスナップショットバージョンを表し、アルファはベータバージョンを表し、ベータはパブリックベータバージョンを表します。RC(リリース候補)は最後のリリース候補であり、リリースは安定バージョンを表し、GA(一般提供)が正式にリリースされます。
<packaging>はプロジェクトのパッケージ化方法を指定します。デフォルトはjarパッケージです
<name>はプロジェクトの名前を表し、<url>はプロジェクトのURLです
<dependencies>では、プロジェクトに必要な特定の依存関係が座標によって導入されます。<scope>は、依存関係の使用範囲を表します。ここで、testは、依存関係がテストでのみ使用できることを表します。デフォルトはコンパイルで、コンパイル、テスト、および実行に効果的です。ただし、コンパイル、テストに効果的であり、ランタイムはトイレと実行に効果的です。<exclusion>タグを使用して、依存関係を参照する推移的な依存関係を除外することもできます。たとえば、AはBに依存し、BはCに依存し、AにBの依存関係を導入するときにCを参照したくない場合は、除外を使用してCを除外できます。
使用したMavenプラグインを<build>の下に導入します
<?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">
<!--指定POM版本-->
<modelVersion>4.0.0</modelVersion>
<!--项目的maven坐标-->
<groupId>org.example</groupId>
<artifactId>SpringMVC</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>SpringMVC Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<!--项目所需依赖-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<!--所用maven插件-->
<build>
<finalName>SpringMVC</finalName>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
Pomの依存関係は継承できます。たとえば、親プロジェクトの<dependencyManagement>に導入されたjunit依存関係は次のとおりです。子プロジェクトが親プロジェクトに依存した後は、再度導入しなくてもjunitを継承できます。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>