【Maven】 Maven ~ 入門編 ~

  Mavenとは...

 * Javaのソフトウェア・プロジェクト管理ツール
 * Ant(以下の関連記事参照)の機能を内包しており、ビルドツールとしても利用可能
http://blogs.yahoo.co.jp/dk521123/33838551.html
 * Mavenは、「アーティファクト(Artifact)」と「リポジトリ」という2つの概念で構築されている
 * Mavenが動作するのに必要な設定ファイルは、「pom.xml」です

 

  利点

 * Jarファイルの依存関係を自動的に解決してダウンロードをする
   (必要なJarファイルを手動で入手する必要がなくなる)

 

  用途

 * コンパイル
 * 単体テスト
 * Javadoc生成
 * テストレポート生成
 * デプロイ

 

  アーティファクト(Artifact)

 * ビルドの成果物として生成される単一のファイルのこと

 

  pom.xml について

 * pom.xmlは、プロジェクトに対し、Mavenが必要とする情報が記述されている

 + artifactId : アーティファクトID
 + groupId : プロジェクトのグループID
 + version : プロジェクトのバージョン

 * 上記3つのタグを利用することで、大きなプロジェクトの中のサブプロジェクトまで管理することが可能になる

 + packaging : プロジェクトの生成物の種類を指定。デフォルトはjar
 + dependency : プロジェクトに必要とするライブラリ

  テンプレート

<?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">

  
  <!-- プロジェクト設定 -->
  
  <build>
    <!-- 入出力の設定 -->
    
    <plugins>
      <plugin>
         <!-- ビルド設定 -->
      </plugin>
    </plugins>
  </build>
  
  <reporting>
    <plugin>
      <!-- レポート設定 -->
    </plugin>
  </reporting>
  
  <dependencies>
    <dependency>
      <!-- ライブラリ依存関係の設定 -->
    </dependency>
  </dependencies>
  
</project>

  例

 * 例「hibernate-core-3.2.0.ga」であれば...

 * artifactId : hibernate
 * groupId : core
 * version : 3.2.0.ga

  pom.xml

・・・
<dependency>
   <artifactId>hibernate</artifactId>
   <groupId>core</groupId>
   <version>3.2.0.ga</version>
</dependency>
・・・

 

  設定ファイル・setting.xml

 * ビルドの成果物として生成される単一のファイルのこと

 + proxies : HTTP通信のPROXYの設定 '''
 + mirrors : 取得するJarファイルがあるサイトの指定
 + localRepository : ローカルリポジトリの場所を指定