pom.xml : dependency

Maven2のpom.xmlで最も重要な記述である、dependency( 外部jarライブラリ )の定義について説明します。

dependencyの記述例

本サンプルでは、外部jarライブラリとして、jakarta-commons-jxpath-1.2 を設定しています。

記述する項目
項目名 サンプルの設定値 意味
groupId commons-jxpath ドメイン名( commonsはちょっと特殊です )
artidactId commons-jxpath ライブラリ名
version 1.2 ライブラリのリリースバージョン

dependencyの依存解決

ここで疑問があります。サンプルアプリが依存する外部アプリとして、pom.xmlに
追記した dependency はこの1項目だけです。
ところが、JXPath\target\lib には9本の jar がありました。

  1. ant-optional-1.5.1.jar
  2. commons-beanutils-1.4.jar
  3. commons-collections-2.0.jar
  4. commons-jxpath-1.2.jar
  5. commons-logging-1.0.jar
  6. jdom-b9.jar
  7. servlet-api-2.2.jar
  8. xerces-1.2.3.jar
  9. xml-apis-1.0.b2.jar

これは、Maven2が commons-jxpath-1.2.jar が依存しているjarをいもづる式に
自動的に判定して集めてくれたのでした。便利、便利。

ただ、servlet-api-2.2.jar って、XML扱うのに必要なのかどうかちょっと疑問です?

groupIdやartifactIdの見つけ方

ただし、勝手気ままに定義した dependency からは、jarを集めてくることはできません。
Maven2が理解できる groupIdやartifactIdは、ある場所にカタログがあります。
どこかというと、ブラウザで http://www.ibiblio.org/maven2を子画面に開くを開いて ください
なにやら、ライブラリの一覧と思われる画面が現れます。
上記の中央サイトは、どうも混雑していることが多く、つながりにくいようです。
ミラーサイト
http://repo1.maven.org/maven2/も試してみてください。

この中から、自分が使いたいライブラリのフォルダを探します。
例えば、commons-net を使いたい場合には、commons-netのリンクをクリックして進んでいくと
下の図のような画面になります。

次に、画面の maven-metadata-xml をクリックすると、下のテキストが表示されます。

pom.xmlのdependencyに記述する groupId と artifactId はこの値をそのまま書き写してください。
versionについては、複数の versionの記述がある中から、自分が使いたい version を1つ選んで
dependency 指定に書き込んでください。

個々の設定を見る

左のメニューの「pom.xml」のdependencyおよびbuildの記事をご覧ください。