Mavenメモ3

作成 2004/8/12

リポジトリとか

Mavenのリポジトリというのがしばらくなんのことやらという感じだったんですが、ようやく少しわかってきました。

リポジトリとは?

リポジトリとは、mavenで利用する依存JARを格納する場所です。リポジトリには

があります。Mavenは実行されると、project.xmlのdependencyに記述しているJARをローカルコピーから探します。存在すればそのまま使います。存在しなければ、リモートリポジトリからローカルリポジトリにJARをコピーします。

リポジトリの設定はプロパティーファイル(project.properties、build.propertiesなど)に記述します。

maven.repo.local=C:/mavenrepo/
maven.repo.remote=http://myhost/mavenrepo/

指定しない場合のデフォルトは、ローカルリポジトリが、${user.home}/.maven/repository、リモートリポジトリは、http://www.ibiblio.org/maven/です。また、リモートリポジトリはカンマで区切って複数記述することができます。

maven.repo.remote=http://myhost/mavenrepo/,http://www.ibiblio.org/maven/

LAN内のサーバにリポジトリを立て、各開発者のPCのリモートリポジトリは、そのサーバを参照したりするようです。

リポジトリレイアウトとdependencyの関係

リポジトリは次のようなディレクトリ構成になっています。

repository/
  struts/
    jars/
       struts-1.1.jar
       ...
    poms/
    .../
  ...

このstruts-1.1.jarを利用したい場合、project.xmldependencyでは、次のように記述します。

<dependency>
    <groupId>struts</groupId>
    <artifactId>struts</artifactId>
    <version>1.1</version>
</dependency>

groupIdがディレクトリ名、artifactIdが(デフォルトで)JARファイル名の先頭部分、versionがバージョンになります。JARファイル名は、(artifactId) + (version) + .jar となります。groupIdとartifactIdの代わりに以下のようにidを指定した場合は、idがgroupIdとartifactIdになります(昔の書き方?)。

<dependency>
    <id>struts<id>
    <version>1.1</version>
</dependency>

ローカルリポジトリに上のリポジトリレイアウトの形式で、JARを置けば、ダウンロードしに行きません(ちょっとMavenの動作を試す場合にお手軽?)。中央リポジトリ(http://www.ibiblio.org/maven/)に存在しないJARを利用する場合は、LAN内のリポジトリサーバにそのJARを追加し、project.xmlに記述することになります。


もどる | TOP