Maven-repositories
Maven-リポジトリ
Mavenリポジトリとは何ですか?
Mavenの用語では、リポジトリは、すべてのプロジェクトjar、ライブラリjar、プラグイン、またはその他のプロジェクト固有のアーティファクトが保存され、Mavenで簡単に使用できるディレクトリです。
Mavenリポジトリには3つのタイプがあります。 次の図は、これら3つのタイプに関するアイデアを示しています。
- 地元
- 中央
- 遠い
ローカルリポジトリ
Mavenローカルリポジトリは、マシン上のフォルダーの場所です。 初めてmavenコマンドを実行すると作成されます。
Mavenローカルリポジトリは、プロジェクトのすべての依存関係(ライブラリjar、プラグインjarなど)を保持します。 Mavenビルドを実行すると、Mavenはすべての依存関係jarをローカルリポジトリに自動的にダウンロードします。 プロジェクトがビルドされるたびに、リモートマシンに保存されている依存関係への参照を避けるのに役立ちます。
Mavenローカルリポジトリは、デフォルトではMUSERによって%USER_HOME%ディレクトリに作成されます。 デフォルトの場所を上書きするには、%M2_HOME%\ confディレクトリにあるMaven settings.xmlファイルで別のパスを指定します。
<settings xmlns = "http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>C:/MyLocalRepository</localRepository>
</settings>
Mavenコマンドを実行すると、Mavenはカスタムパスに依存関係をダウンロードします。
中央リポジトリ
Maven中央リポジトリは、Mavenコミュニティによって提供されるリポジトリです。 よく使用されるライブラリが多数含まれています。
Mavenがローカルリポジトリで依存関係を見つけられない場合、次のURLを使用して中央リポジトリで検索を開始します-https://repo1.maven.org/maven2/
中央リポジトリの重要な概念は次のとおりです-
- このリポジトリは、Mavenコミュニティによって管理されています。
- 設定する必要はありません。
- 検索するにはインターネットアクセスが必要です。
中央のMavenリポジトリのコンテンツを参照するために、Mavenコミュニティはhttps://search.maven.org/#browseというURLを提供しています。 このライブラリを使用すると、開発者は中央リポジトリで利用可能なすべてのライブラリを検索できます。
リモートリポジトリ
Mavenは、中央リポジトリでも言及された依存関係を見つけられない場合があります。 次に、ビルドプロセスを停止し、コンソールにエラーメッセージを出力します。 このような状況を防ぐために、Mavenは Remote Repository の概念を提供します。これは、必要なライブラリまたは他のプロジェクトjarを含む開発者独自のカスタムリポジトリです。
たとえば、下記のPOM.xmlを使用すると、Mavenは同じpom.xmlに記載されているリモートリポジトリから依存関係(中央リポジトリでは使用不可)をダウンロードします。
<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.projectgroup</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>com.companyname.common-lib</groupId>
<artifactId>common-lib</artifactId>
<version>1.0.0</version>
</dependency>
<dependencies>
<repositories>
<repository>
<id>companyname.lib1</id>
<url>http://download.companyname.org/maven2/lib1</url>
</repository>
<repository>
<id>companyname.lib2</id>
<url>http://download.companyname.org/maven2/lib2</url>
</repository>
</repositories>
</project>
Maven依存検索シーケンス
Mavenビルドコマンドを実行すると、Mavenは次の順序で依存関係ライブラリの検索を開始します-
- *ステップ1 *-ローカルリポジトリ内の検索依存関係が見つからない場合は、ステップ2に進み、それ以外の場合はさらに処理を実行します。
- *ステップ2 *-中央リポジトリで依存関係を検索します。見つからない場合、リモートリポジトリ/リポジトリが記載されている場合は、ステップ4に進みます。 そうでない場合は、将来の参照のためにローカルリポジトリにダウンロードされます。
- *ステップ3 *-リモートリポジトリが言及されていない場合、Mavenは処理を停止し、エラー(依存関係が見つかりません)をスローします。
- *ステップ4 *-リモートリポジトリまたはリポジトリで依存関係を検索します。見つかった場合は、将来の参照のためにローカルリポジトリにダウンロードされます。 そうでない場合、Mavenは処理を停止し、エラー(依存関係が見つかりません)をスローします。