关于maven-resources-plugin配置的隐藏的坑
Posted 小马哥的春天
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于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保持一样, 再测试接口, 成功!
以上是关于关于maven-resources-plugin配置的隐藏的坑的主要内容,如果未能解决你的问题,请参考以下文章
未能执行目标 org.apache.maven.plugins:maven-resources-plugin:2.5:resources
Maven:未能执行目标 org.apache.maven.plugins:maven-resources-plugin:2.7:resources
解决maven-resources-plugin prior to 2.4 is not supported
无法计算构建计划:无法解析插件 org.apache.maven.plugins:maven-resources-plugin:2.5 或其依赖项之一
POM报错Failure to transfer org.apache.maven.plugins:maven-resources-plugin:pom:2.6 from
Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.1.0