M2でマルチプロジェクトでWARのリソースの指定方法
Maven2でWARを作るときクラスパスではなくWEB-INF以下などにリソースをおくことが良くあるが、そんな際にこんな指定をすることで通常のリソースファイルと同様にリソースのフィルタリングができる。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.0</version>
<configuration>
<warSourceDirectory>src/main/webapp</warSourceDirectory>
<webResources>
<resource>
<directory>src/main/webapp</directory>
<filtering>true</filtering>
<includes>
<include>**/velocity.properties</include>
<include>**/web.xml</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
ただ、上記の場合一点問題があり、マルチプロジェクトにした際相対パスになってしまい、親プロジェクトのディレクトリをベースにしてしまう。
↑これで1時間はまったorz
なので正しくは、下記のように記述するべき
<warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory>
<webResources>
<resource>
<directory>${basedir}/src/main/webapp</directory>
ちなみに、web.xmlとかをUTF-8で記述して日本語混ぜると文字化けしてトラぶる。
↑ひょっとしてリソースフィルタの読み込み書き込みがOSデフォルト?
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.0</version>
<configuration>
<warSourceDirectory>src/main/webapp</warSourceDirectory>
<webResources>
<resource>
<directory>src/main/webapp</directory>
<filtering>true</filtering>
<includes>
<include>**/velocity.properties</include>
<include>**/web.xml</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
ただ、上記の場合一点問題があり、マルチプロジェクトにした際相対パスになってしまい、親プロジェクトのディレクトリをベースにしてしまう。
↑これで1時間はまったorz
なので正しくは、下記のように記述するべき
<warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory>
<webResources>
<resource>
<directory>${basedir}/src/main/webapp</directory>
ちなみに、web.xmlとかをUTF-8で記述して日本語混ぜると文字化けしてトラぶる。
↑ひょっとしてリソースフィルタの読み込み書き込みがOSデフォルト?


