zip.ZipException: Unexpected record signature: 0X9问题"/>
解决一次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
链接:
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
参考文档:
Maven 打包指定资源配置文件 及 防止打包时候文件压缩导致文件不可用
Maven 父子工程的一些细节
maven-compiler-plugin详解
maven几种打包插件介绍,及个人心得总结
更多推荐
解决一次java.util.zip.ZipException: Unexpected record signature: 0X9问题
发布评论