第2章 Maven ガイド

2.1. Maven について

2.1.1. Maven リポジトリについて

Apache Maven は、ソフトウェアプロジェクトの作成、管理、構築を行う Java アプリケーション開発で利用される分散型構築自動化ツールです。Maven は Project Object Model (POM) と呼ばれる標準の設定ファイルを利用して、プロジェクトの定義や構築プロセスの管理を行います。POM はモジュールやコンポーネントの依存関係、構築の順番、結果となるプロジェクトパッケージングのターゲットを記述し、XML ファイルを使用して出力します。こうすることで、プロジェクトが正しく統一された状態で構築されるようにします。
Maven は、リポジトリを使いアーカイブを行います。Maven リポジトリには Java ライブラリ、プラグイン、その他のアーティファクトが格納されています。デフォルトのパブリックリポジトリは Maven 2 Central Repository ですが、複数の開発チームの間で共通のアーティファクトを共有する目的で、社内のプライベートおよび内部リポジトリとすることが可能です。また、サードパーティのリポジトリもあります。JBoss Enterprise Application Platform 6 には、Java EE 開発者が通常 JBoss Enterprise Application Platform 6 でアプリケーションを構築する際に利用する要件の多くが含まれています。このようなリポジトリを使うようプロジェクトを設定するには、 「 JBoss Enterprise Application Platform の Maven リポジトリの設定」 を参照してください。
リポジトリはリモートにもローカルにもすることができます。リモートのリポジトリには、HTTP サーバーのリポジトリにはhttp://、ファイルサーバーのリポジトリにはfile:// という風に共通のプロトコルを使いアクセスします。ローカルのリポジトリは、リモートリポジトリからのアーティファクトをダウンロードしキャッシュ化したものです。
Maven に関する詳細情報は、Welcome to Apache Maven を参照してください。
また、Maven リポジトリの情報は Apache Maven Project - Introduction to Repositories を確認してください。
さらに、Maven POM ファイルの詳細情報は Apache Maven Project POM Reference および 「Maven POM ファイルについて」 から確認いただけます。

2.1.2. Maven POM ファイルについて

プロジェクトオブジェクトモデル (POM) ファイルはプロジェクトを構築するため Maven が使用する設定ファイルです。POM ファイルは XML のファイルで、プロジェクトの情報や構築方法が含まれます。これには、ソースやテスト、ターゲットディレクトリの場所、プロジェクトの依存関係、プラグインリポジトリ、実行できるゴールが含まれます。さらに、バージョン、詳細、開発者、メーリングリスト、ライセンスなどプロジェクトに関する追加情報も含まれます。pom.xml ファイルには一部の設定オプションが必要で、他のすべてをデフォルトにします。詳細は 「Maven POM ファイルの最低要件」 を参照してください。
pom.xml ファイルのスキーマは http://maven.apache.org/maven-v4_0_0.xsd にあります。
POM ファイルの詳細は Apache Maven Project POM Reference を参照してください。

2.1.3. Maven POM ファイルの最低要件

最低要件

pom.xml ファイルの最低要件は次の通りです。

  • プロジェクトルート
  • modelVersion
  • groupId - プロジェクトのグループの ID
  • artifactId - アーティファクト (プロジェクト) の ID
  • version - 指定グループ下のアーティファクトのバージョン
サンプル pom.xml ファイル

基本的な pom.xml ファイルは次のようになります。

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.jboss.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1</version>
</project>

2.1.4. Maven 設定ファイルについて

Maven の settings.xml ファイルには Maven に関するユーザー固有の設定情報が含まれています。開発者の ID、プロキシ情報、ローカルリポジトリの場所など、 pom.xml ファイルで配布されてはならないユーザー固有の設定が含まれています。
settings.xml が存在する場所は 2 つあります。
Maven インストール
設定ファイルは M2_HOME/conf/ ディレクトリにあります。これらの設定は global 設定と呼ばれます。デフォルトの Maven 設定ファイルはコピー可能なテンプレートで、これを基にユーザー設定ファイルを設定することが可能です。
ユーザーのインストール
設定ファイルは USER_HOME/.m2/ ディレクトリにあります。 Maven とユーザーの settings.xml ファイルが存在する場合、内容はマージされます。重複する内容がある場合、ユーザーの settings.xml ファイルが優先されます。
以下は 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">  
  <profiles>
    <!-- Configure the JBoss EAP Maven repository -->
    <profile>
      <id>jboss-eap-maven-repository</id>
      <repositories>
        <repository>
          <id>jboss-eap</id>
          <url>file:///path/to/repo/jboss-eap-6.0-maven-repository</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>jboss-eap-maven-plugin-repository</id>
          <url>file:///path/to/repo/jboss-eap-6.0-maven-repository</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <!-- Optionally, make the repository active by default -->
    <activeProfile>jboss-eap-maven-repository</activeProfile>
  </activeProfiles>
</settings>
settings.xml ファイルのスキーマは http://maven.apache.org/xsd/settings-1.0.0.xsd にあります。