首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven:在资源子集上启用过滤的正确方法

Maven:在资源子集上启用过滤的正确方法
EN

Stack Overflow用户
提问于 2011-04-21 00:08:03
回答 1查看 4.4K关注 0票数 0

考虑下面的目录结构:

代码语言:javascript
复制
src/main/resources/
    resource1.properties
    subdir/
        resource2.properties

我需要resource2.properties (和它的兄弟)经历Maven filtering,但我宁愿从过滤中排除所有其他资源。

这是一个安全问题:其他属性文件可能包含不应该被替换的${xxx}标记。我确实需要保留target上的源目录结构。

最后,我发现实现这一点的唯一方法(以不破坏maven-eclipse-plugin的eclipse:eclipse的方式)似乎是:

代码语言:javascript
复制
<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被标记为已修复,因此不再需要此解决方法?

这看起来不像是一个太牵强的用例,但我正在努力……

EN

回答 1

Stack Overflow用户

发布于 2011-04-21 00:24:11

这样如何:

代码语言:javascript
复制
   <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>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5733339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档