解决一次java.util.zip.ZipException: Unexpected record signature: 0X9问题

打包时候文件压缩导致文件不可用
部分pom.xml 手打版

<properties>
	<java.version>1.8</java.version>
	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<build>
	<resources>
		<resource>
			<directory>src/main/resources</directory>
			<filtering>true</filtering>
			<includes>
				<include>**/*</include>
			</includes>
		</resource>
	</resources>

	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>3.10.0</version>
			<configuration>
				<source>${java.version}</source>
				<target>${java.version}</target>
				<encoding>${project.build.sourceEncoding}</encoding>
			</configuration>
		</plugin>

		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-resources-plugin</artifactId>
			<version>3.1.0</version>
			<configuration>
				<nonFilteredFileExtensions>
					<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
					<nonFilteredFileExtension>xls</nonFilteredFileExtension>
					<nonFilteredFileExtension>zip</nonFilteredFileExtension>
					<nonFilteredFileExtension>pdf</nonFilteredFileExtension>
				</nonFilteredFileExtensions>
			</configuration>
		</plugin>
	</plugins>
</build>

同事在子项目里加的org.apache.maven.plugins配置覆盖了原来父工程pom中对org.apache.maven.plugins中nonFilteredFileExtension的定义

父子工程的依赖继承问题
子模块会继承父工程的依赖,但并不是所有继承下来的依赖都有效、还能在子模块中使用。作用域是provided、test的依赖,继承下来都是无效的,需要在子模块的pom.xml中重新导入

jar包锁定
公司往往要在父工程的pom.xml中统一项目的jar包版本,但如果在子模块的pom.xml中导入了同名、不同版本的jar包,会覆盖父工程传递的同名依赖。为防止这种问题,需要在父工程的pom.xml中锁定jar包版本。
就是把<dependencies>拷贝一下放到<dependencyManagement>中。锁定之后,如果子模块中出现同名的依赖,以父工程传递的依赖(锁定的依赖)为准。
需要注意的是<dependencyManagement>只有锁定jar包的功能,不会导入jar包。

maven 是个管理工具,如果我们不告诉它我们的代码要使用什么样的 jdk 版本编译的话,它就会用 maven-compiler-plugin 默认的 jdk 版本来进行处理,这样就容易出现版本不匹配,以至于可能导致编译不通过的问题。

​​maven-compiler-plugin插件是一个Maven插件,用来编译项目代码maven-compiler-plugin主要负责的是java代码的版本管理、编译、编码等方面的功能

maven-resources-plugin忽略对某些文件进行处理
maven打包项目的时maven-resources-plugin插件会对资源文件中占位符进行替换 但部分文件可能不需要进行替换,例如:证书文件,Excel文件等这些文件处理后将不能使用

作者:chenzan
链接:https://www.jianshu.com/p/d93c6c553f5f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

参考文档:
Maven 打包指定资源配置文件 及 防止打包时候文件压缩导致文件不可用
Maven 父子工程的一些细节
maven-compiler-plugin详解
maven几种打包插件介绍,及个人心得总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值