にフィルタリングを有効にする正しい方法:Mavenの:このディレクトリ構造を考えてみましょリソースのサブセット
src/main/resources/
resource1.properties
subdir/
resource2.properties
私はMaven filteringを受けることresource2.properties
(とその兄弟)を必要とするのではなく、フィルタから他のすべてのリソースを除外します。
これは安全です。他のプロパティファイルには、置換されるべきではないトークン${xxx}
が含まれている可能性があります。 target
にソースディレクトリ構造を保存する必要があります。最後に
、私は(のmaven-日食 - プラグインのeclipse:eclipse
を破壊しないように)これを実現する唯一の方法はあると思われることがわかった:
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>subdir/**</exclude>
</excludes>
</resource>
<resource>
<!-- 'subdir' resources need placeholder substitution (ie: "filtering") -->
<directory>src/main/resources/subdir</directory>
<targetPath>${project.build.outputDirectory}/subdir</targetPath>
<filtering>true</filtering>
</resource>
</resources>
あなたは、これが複雑であると言うことができます潜在的には脆い。これは、Maven 2.2.1をmaven-eclipse-plugin v2.8(最新)で使用しています。これはthis old threadをリコール
[INFO] Request to merge when 'filtering' is not identical. Original=resource src/main/resources: output=target/classes, include=[], exclude=[subdir/**|**/*.java], test=false, filtering=false, merging with=resource src/main/resources: output=target/classes, include=[subdir/**], exclude=[**/*.java], test=false, filtering=true
:この問題を回避するには、ダウングレード(そこ働く上述の
他、わずかに少ない入り組んバージョンは次のようになめらかで文句のmaven-のEclipseプラグインの問題を引き起こしていますmaven-eclipse-pluginのv2.6まで)、これは関連するバグが修正済みとしてマークされているので、これはもはや必要ではありませんか?
これは、この程度
-plugin ... – khmarbaise
同意しますが、それは確かに独自の癖なしではありません;-)ここでの問題は、いくつかのチームメンバーがコマンドラインツールを使用してinsite ... – sxc731
コマンドラインは非常に良いです。私はコマンドラインも好むが、もし私が日食を使っているなら、m2eclipseを使うともっと簡単に作業できる。 – khmarbaise