【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 文件外,其它所有文件都需要进行资源过滤。