考虑下面的目录结构:
src/main/resources/
resource1.properties
subdir/
resource2.properties我需要resource2.properties (和它的兄弟)经历Maven filtering,但我宁愿从过滤中排除所有其他资源。
这是一个安全问题:其他属性文件可能包含不应该被替换的${xxx}标记。我确实需要保留target上的源目录结构。
最后,我发现实现这一点的唯一方法(以不破坏maven-eclipse-plugin的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 (最新版本)。
上面的其他稍微不那么复杂的版本也引发了maven-eclipse-plugin的问题,它抱怨smth类似于:
[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
这让人回想起this old thread:这里提到的解决方法是有效的(将maven-eclipse-plugin降级到v2.6 ),但由于相关的bug被标记为已修复,因此不再需要此解决方法?
这看起来不像是一个太牵强的用例,但我正在努力……
发布于 2011-04-21 00:24:11
这样如何:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources/subdir</directory>
<targetPath>${project.build.OutputDirectory}/subdir</targetPath>
<filtering>true</filtering>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
</build>https://stackoverflow.com/questions/5733339
复制相似问题