では、作成した
pom.xmlについて見ていきましょう。まず、最初に目にとまるのが、パッケージに関する設定です。
<packaging>war</packaging>
これですね。これにより、ビルドされたプログラムは、Jarファイルではなく、
warファイルにまとめられるようになります。Webアプリケーションの場合、<packaging>はwarが基本です。
■プロパティについて
もう1つ、けっこう重要な役割を果たしているのが、
<properties>タグです。作成した
pom.xmlを見ると、このように書かれていますね。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jetty.version>9.4.7.v20170914</jetty.version>
</properties>
<project.build.sourceEncoding>タグは、既に説明済みでしたね。ソースファイルのエンコーディングを指定するものでした。
もう1つの、
<jetty.version>というタグが、ここでのポイントです。これは、Jettyのバージョンを指定するものです。これにより、9.4.7.v20170914というバージョン(2017年10月現在の最新版)が
jetty.versionという属性に指定されています。
これがどのように利用されているかは、他のところを見るとわかります。例えば、<dependencies>タグの中を見ると、こんな記述が目に留まるでしょう。
<version>${jetty.version}</version>
この
${jetty.version}というのが、
<jetty.version>の値を設定しているものなのです。この
${jetty.version}は、
jetty.versionという変数を埋め込んでいるのです。つまり、
<jetty.version>というのは、
jetty.versionという変数を作成するものだったのです。
この
jetty.versionというのは「Jettyのバージョンはこういう名前の変数でないといけない」と決まっているものではありません。とりあえずわかりやすい名前としてつけたものです。変数名はそれぞれで好きなようにつけて構いません。例えば
「myval」という名前の変数を使いたければ、
<myval>というタグで値を用意し、
${myval}という形で変数を利用すればいいのです。
pom.xmlでは、特定のバージョンに合わせてライブラリなどを用意することがあります。こういうとき、あらかじめ変数を用意してバージョン名を設定しておき、その変数を使ってそれぞれのライブラリの設定を行うようにしておくことができます。
こうすると、例えばバージョンを変更するとき、
<jetty.version>の値を書き換えるだけで済みます。1つ1つのライブラリに個別に値を記述していたなら、全部の値を書き換えないといけません。中には、書き換え忘れて古いバージョンのままになっているライブラリなども出てくるかもしれません。
このように、
<proierties>タグにプロパティを用意することで変数を作成し利用するというやり方は、多数のライブラリやプラグインなどを利用するようになったとき必須のテクニックとなります。ここでぜひ覚えておきましょう。