springboot项目创建笔记31 之《maven-assembly-plugin打包,二进制文件损坏问题》

1、问题:
一个项目发现打包后,static目录下的字体、图片都无法使用,对比了打包前和打包后文件大小:

可以看到左边打包后,大小明显变大。

2、原因是assembly.xml设置了:
<filtered>true</filtered>

<fileSets>
<!-- 将代码目录/src/main/resources下的文件,复制到输出目录的config内 -->
<fileSet>
	<directory>${basedir}/src/main/resources</directory>
	<includes>
		......
	</includes>
	<filtered>true</filtered>
	<outputDirectory>${file.separator}config</outputDirectory>
</fileSet>

filtered作用是过滤配置文件中的资源,替换占位符。过滤时会用utf-8编码读取文件。
所以遇到打包二进制文件,就会破坏文件内容,导致无法使用。
打包二进制文件时,无效编码会自动替换成ef bf bd。所以文件容量会变大。 

3、解决办法
将filtered设置为false,或者为二进制文件单独使用fileSet

参考资料:
maven-assembly-plugin打包,二进制文件损坏问题 - 简书
maven-dependency-plugin以二进制模式解压缩文件-Java 学习之路
maven编译后资源文件内容发生变更问题随记_周绍禹-whuiss-CSDN博客
 

猜你喜欢

转载自blog.csdn.net/csj50/article/details/121290038
今日推荐