关于maven-resources-plugin配置的隐藏的坑

本文介绍了一种解决证书文件在不同环境下大小发生变化导致证书工厂无法初始化的问题。通过调整maven-resources-plugin配置避免了文件过滤过程中的大小变化,确保了证书在各个环境中的正确加载。

昨天发现一个问题, 一个第三方证书的文件存放于resources文件夹下,在本地环境使用该证书进行加密调用第三方接口,没有任何问题,但是发布到测试环境和生产环境(linux)报错,提示证书工厂无法初始化。

看正式环境和本地唯一的代码区别是证书的路径不一样, 本地是windows操作系统,证书变量设值为:

plat.cert.path=E:\\LOJI-GIT\\eunke-web\\eunke-web-war\\src\\main\\resources\\ump\\cert_2d59.crt

正式环境设值为:

plat.cert.path=/data/work/cert/ump/cert_2d59.crt

经正式环境查看,该证书确实已经在对应的目录下存在, 百思不得姐, 于是通过打logger日志,发现了一个错误:

Could not parse certificate: java.io.IOException: Invalid BER/DER data (too huge?)

证书文件太大?特地比较了下本地的证书, 大小为 824B

 

但是部署到正式环境后, 大小却变为了 1156B

 

体积发生了变化, 经过百度, 发现是maven-resources-plugin在maven打包过程中作怪。

maven-resources-plugin可以在资源文件中使用诸如${propertyName}形式的Maven属性,然后配置maven-resources-plugin开启对资源文件的过滤,之后就可以针对不同环境通过命令行或者Profile传入属性的值,以实现更为灵活的构建。

然而我们的证书文件并不需要替换这些${}值, 故不需要该插件进行过滤处理, 配置增加一条,如下:

 

重新jenkins部署生产, 再看文件, 大小和windows保持一样, 再测试接口, 成功!

 

转载于:https://www.cnblogs.com/mhl1003/p/9413096.html

Maven Resources PluginMaven 中用于处理资源过滤和复制的核心插件之一。其不同版本之间通常在功能增强、兼容性、性能优化以及 Bug 修复方面有所改进。以下是对 `maven-resources-plugin` 3.3.1 与 3.1.0 的主要差异分析: ### 功能增强与变更 - **资源过滤增强**:3.3.1 版本在资源过滤方面引入了更灵活的配置选项,例如支持 `nonFilteredFileExtensions` 配置项,允许用户更精确地定义哪些文件类型不应被过滤处理。此功能在 3.1.0 中也存在,但其处理方式在后续版本中得到了优化以避免某些边缘情况导致的错误过滤 [^5]。 - **支持 Java 17+**:3.3.1 增强了对 JDK 17 及以上版本的支持,修复了在高版本 JDK 上可能出现的兼容性问题,而 3.1.0 对 JDK 11 及以下版本的支持更为稳定。 ### 性能优化 - **资源复制效率提升**:3.3.1 在资源复制过程中引入了更高效的 I/O 操作机制,减少了不必要的内存消耗,提升了大规模项目构建时的性能表现 [^5]。 - **并行处理支持**:虽然 3.1.0 已经初步支持多线程资源处理,但 3.3.1 进一步优化了并行处理逻辑,减少了线程竞争问题,提高了插件在多模块项目中的执行效率 [^5]。 ### 安全性与稳定性改进 - **依赖升级**:3.3.1 升级了多个内部依赖库,包括对 `plexus-utils` 和 `maven-shared-utils` 的更新,修复了潜在的安全漏洞并提升了插件整体的稳定性 [^5]。 - **Bug 修复**:3.3.1 修复了多个已知问题,包括在 Windows 系统下路径处理不正确、资源编码解析异常等问题,这些问题在 3.1.0 中可能导致构建失败 [^5]。 ### 示例配置 以下是一个使用 `maven-resources-plugin` 3.3.1 的典型配置示例: ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.3.1</version> <configuration> <encoding>UTF-8</encoding> <nonFilteredFileExtensions> <extension>jpg</extension> <extension>png</extension> </nonFilteredFileExtensions> </configuration> </plugin> ``` ### 兼容性建议 对于新项目或需要支持 JDK 17 的项目,推荐使用 3.3.1;而对于维护中的旧项目,若使用 JDK 11 或以下版本,3.1.0 仍是一个稳定的选择。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值