POM ファイルを書こう! 其ノ壱 - POM ファイルの基本

POM ファイルを書こう! 其ノ壱 - POM ファイルの基本

前回までで、Maven2 のインストール方法や使い方を見てきました。 次は POM ファイル(以下、pom.xml)の書き方、カスタマイズの仕方を見ていきます*1一覧)。

ちなみに “POM”とは Project Object Model の略で、プロジェクトのオブジェクト・モデル(説明になってない?)のことです。

サンプル


とりあえず、pom. xml の単純なサンプルを見てみましょう。
<?xml version="1.0"?>
<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/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <groupId>org.sample</groupId>
  <artifactId>sample</artifactId>
  <version>0.0.1</version>
</project>

▲<project> 要素に付いている属性(と名前空間宣言)はなくても良いようです(以降では省略)。

シンプルな pom.xml の各要素


上記サンプルの <project> 要素下にある各要素を見てみましょう。
modelVersion
子テキストはモデルのバージョンを指定しますが、現在は“4.0.0”しかありません。
groupId
開発しているグループの ID です。
artifactId
成果物の ID です。 この ID 名は、成果物(jar ファイルなど)の名前に使われます。
version
成果物のバージョンです。

groupId, artifactId, version の3つ組を使って成果物を一意的に指定することが出来ます。 maven を使ってプロジェクト・テンプレートを生成したときや、m2eclipse を使って pom.xml を生成したときにも、これらの情報が必要でした。 他の成果物への関連(依存性や継承など)を指定する際にも、これら3つ組で対象となる成果物を指定します。

ライブラリへの依存性を付加する


Maven2.0 の有難味を味わえる1つとして、「pom. xml に少々要素を書き加えるだけで、(公開されている)ライブラリを自動的にダウンロードして自分のプロジェクトで使える」ことがあります。 まぁ、とりあえずサンプルを見てみましょう:
サンプル

とりあえず、pom. xml の単純なサンプルを見てみましょう。 ここでは、ロギング・ コンポーネントcommons-logging への依存性を付加してみましょう。
<?xml version="1.0"?>
<project>
  ...
  <dependencies>
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.1</version>
    </dependency>
  </dependencies>
</project>
pom.xml の書き方

他のライブラリに対する依存性は「 project/dependencies/dependency」要素で行います。 複数の依存性を書くためには、 <dependency> 要素を付加したいライブラリ数だけ書きます。 成果物を指定するためには、少なくとも上に示した成果物を指定する3つ組(groupId, artifactId, version)が必要です。 いろいろなライブラリに対してこれらの3つ組を探す方法は後で書きます。

<dependency> 要素下には、この3つ組以外にも、通常 <scope> 要素を書きます。 他に <optional> 要素も書けます。 これらは次回以降に。

ライブラリの3つ組を探す

m2eclipse を使って検索する

一番簡単な方法は、 m2eclipse をインストールして、その 検索機能を使って依存性を付加する方法です。

しかし、ライブラリ名に数字が入っていると(log4j, dom4j 等)、検索にかからない*2って問題があります。

あと、maven コマンドで生成したプロジェクト・テンプレートを Eclipse 上に読み込んで開発している場合、

1. m2eclipse で依存性を追加
2. プロジェクトのルート・フォルダで maven eclipse:eclipse コマンドを実行
3. Eclipse 上でプロジェクトをリフレッシュ

という手順を踏まないと依存性が設定されない場合があります。

特定のサイトから検索する

公式には、 Maven2 のセントラル・リポジトリから artifactId と version を元に pom. xml ファイルを探せば、その中に groupId, artifactId, version が記述されています。

しかしこれは結構面倒くさいので、MVN Repository を使って検索すると良いでしょう。 

“オブジェクト・モデル”


Maven2 ではプロジェクトをオブジェクト・モデルとして扱います。 オブジェクト・モデルとして扱うメリットとしては、 継承(Inheritance)と 集約(Aggregation)を用いて他のプロジェクトの設定を再利用できることです。 詳しくは次回以降に見ていきます。

*1:詳しくは、http://maven.apache.org/pom.html もしくは『[asin:477412964X:title]』を参照のこと。

*2:バージョン 0.0.9 現在。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值