【Maven - nonFilteredFileExtensions】打包问题记录

问题描述:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.3.0:resources (default-resources) on project xx-service: filtering .../src/main/resources/download/meter.xlsx to .../target/classes/download/meter.xlsx failed with MalformedInputException: Input length = 2 -> [Help 1]

解决方案

在pom.xml 加上这一段。。。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
        <nonFilteredFileExtensions>xlsx</nonFilteredFileExtensions>
    </configuration>
</plugin>

关于 nonFilteredFileExtensions 的说明

nonFilteredFileExtensions 是 Apache Maven 的一个 POM 构建选项,用于通过指定一组文件后缀名,告诉 Maven 在执行资源过滤时不需要对这些文件进行处理。

在项目中,Maven 会将资源文件(如文本文件、配置文件、XML 文件等)拷贝到目标目录,并在拷贝时对其中的变量进行替换,例如将代码中某个环境变量的值替换为具体的值。这个过程叫做资源过滤。

有些文件,例如图片、音频和视频等二进制文件,它们没有需要替换的内容,因此不需要进行资源过滤,这时候就可以使用 nonFilteredFileExtensions 配置来告诉 Maven 不需要对这些文件进行处理,以加快构建速度。

下面是一个示例配置:

<project>
  ...
  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <nonFilteredFileExtensions>
          <nonFilteredFileExtension>jpg</nonFilteredFileExtension>
          <nonFilteredFileExtension>gif</nonFilteredFileExtension>
          <nonFilteredFileExtension>png</nonFilteredFileExtension>
        </nonFilteredFileExtensions>
      </resource>
    </resources>
  </build>
  ...
上述配置表示:在 src/main/resources 目录下的资源文件中,除了 .jpg、.gif 和 .png 文件外,其它所有文件都需要进行资源过滤。
posted @ 2023-06-12 10:15  aaacarrot  阅读(1724)  评论(0编辑  收藏  举报