【问题标题】:Maven resource filtering for single file单个文件的 Maven 资源过滤
【发布时间】:2015-10-25 08:24:32
【问题描述】:

在 pom.xml 我已经定义了:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.6</version>
    <configuration>
        <nonFilteredFileExtensions>
            <nonFilteredFileExtension>xml</nonFilteredFileExtension>
        </nonFilteredFileExtensions>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

<resources>
    <resource>
        <filtering>true</filtering>
        <directory>src/main/resources</directory>
    </resource>
</resources>

现在的问题是所有 xml 文件都没有被过滤。有没有办法过滤单个xml文件?

【问题讨论】:

    标签: xml spring maven


    【解决方案1】:

    这样的东西对我来说很好用:

        <resources>
            <resource>
                <directory>src/test/resources</directory>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/test/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>my_file.xml</include>
                </includes>
            </resource>
        </resources>
    

    本文档对我有帮助: Apache Maven - Filtering

    【讨论】:

      【解决方案2】:

      我不知道为什么 Gabor 的解决方案不起作用,但我设法以这种方式解决:

      首先我删除了 nonFilteredFileExtension 标签:

      <nonFilteredFileExtension>xml</nonFilteredFileExtension>
      

      然后这样修改我的资源:

      <resource>
          <directory>src/main/resources</directory>
          <filtering>true</filtering>
          <includes>
              <include>**/myxml.xml</include>
          </includes>
      </resource>
      
      <resource>
          <directory>src/main/resources</directory>
          <filtering>false</filtering>
          <includes>
              <include>**/*.xml</include>
          </includes>
      </resource>
      

      现在我的单个 xml 文件已被过滤,而其他文件则未被过滤。

      【讨论】:

        【解决方案3】:

        对于资源标签,您可以使用包括和排除。只需简单定义一个掩码,它只适合您的单个文件。见http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html

        示例:

        <project>
          ...
          <build>
            ...
            <resources>
              <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                  <include>**/yoursinglefile.xml</include>
                </includes>
              </resource>
              ...
            </resources>
            ...
          </build>
          ...
        </project>
        

        【讨论】:

        • 文件似乎还没有被过滤。我仍然可以在目标文件夹中的 xml 文件中看到 ${...} 值。
        猜你喜欢
        • 1970-01-01
        • 2016-08-16
        • 1970-01-01
        • 2011-05-02
        • 2012-12-18
        • 1970-01-01
        • 2013-04-11
        • 2016-04-17
        • 1970-01-01
        相关资源
        最近更新 更多