category: Java
DATE : 2008/04/13 (Sun)
DATE : 2008/04/13 (Sun)
システム専用のディレクトリを使用するシステムを開発していると、ディレクトリの指定方法に迷うことがあります。例えば、Hibernate を用いて全文検索を行うことのできる Hibernate Search では、インデックスをディレクトリに格納するため、そのディレクトリをプロパティであらかじめ指定しておかなければなりません。
こういった環境に依存する設定があちこちの設定ファイルやプロパティに散らばっていると、管理が大変です。そこで、Maven Resources Plugin のフィルタリング機能が使えます。この機能の使い方は、次の通りです。
- resources ディレクトリ以下のファイル中の置換したい文字列を${...}に置き換える。
- プロジェクト設定ファイル(pom.xml)に置換するプロパティを指定する。
- プロジェクトをビルドする。
resources ディレクトリ以下のファイル中の置換したい文字列を${...}に置き換える
例えば、resources ディレクトリ中のファイルに次のような設定があったとします。
<property name="hibernate.search.default.indexBase" value="c:/index" />
ここで、value 属性の値はディレクトリへのパスになっています。今回は、この部分をフィルタリング機能で置き換えます。置き換えのために、value 属性の値を${indexBase}に書き換えます。
<property name="hibernate.search.default.indexBase" value="${indexBase}" />
プロジェクト設定ファイル(pom.xml)に置換するプロパティを指定する
続いて、プロジェクト設定ファイル(pom.xml)の中に次の内容を追加します。(「...」は省略を表します)
<project> ... <properties> <indexBase>c:/index</indexBase> </properties> ... </project>
つまり、project タグ直下に properties タグを書き、properties タグの直下に置き換え対象の文字列のタグを作ります。
プロジェクトをビルドする
以上で、フィルタリング機能を使う準備は終わりです。Maven Resources Plugin は、初期設定でビルドサイクルから自動的に呼び出されるため、プロジェクトをビルドするだけで、resources ディレクトリ以下の${...}で指定された文字列が自動的に置換されます。
参考文献
- Maven Resources Plugin - Filtering 本記事は、この記事のまとめのようなものです。
PR
忍者ブログ [PR]