文章目录
  1. 1. micropass平台编译springboot项目上传到nexus不通过
    1. 1.1. 原因

micropass平台编译springboot项目上传到nexus不通过

记录一下今天遇到的问题。

今天开发团队遇到一个无法上传jar包到nexus服务器上的问题,刚开始报错,说是超过了大小限制:

​ Ext.JSON.decode(): You’re trying to decode an invalid JSON String: 413 Request Entity Too Large openresty/1.13.6.2

因为开发团队的包已经100M了,然后联系运维将nginx服务器的配置修改了,由原来的50M大小限制改成了200M。

再次build上传,发现包是上传上去了,但是jar包不完整,本来100M的包,在nexus上只有15M,然后继续找原因。

我将开发团队的jar包拿下来,用jd打开,发现无法解析里面的代码,显示的是空的:

image-20200903134354357

而我试图使用解压缩软件进行解压,发现无法解压成功,而开发团队给出的反馈是jar包可以启动,启动程序也无任何问题。

只能从开发团队的代码配置中找问题了。

最终找到了问题。

原因

由于业务团队代码里的pom.xml中的spring-boot-maven-plugin插件配置:

image.png

即,如果将这个配置设置为 true,打包出来的 jar/war 就是 可执行 的了,可以用如下方式执行:

image.png

为啥配置为false后解压WAR包的时候就会失败? Spring Boot官网上面文档如是说:

image.png

完全可执行jar/war 在文件前面嵌入了个 额外的脚本,这就使得有些命令会执行失败,比如 jar -xf 等。 查看统一部署平台在构建镜像时的日志,如下图,发现就使用了这个命令,所以WAR包就会解压失败!!!

大家将Spring Boot项目打包部署,如果使用 jar -xf 等解压命令,一定要注意 springboot的maven插件 spring-boot-maven-pluginexecutable 配置一定要设置为 false !!! 不然会解压失败!

image.png

文章目录
  1. 1. micropass平台编译springboot项目上传到nexus不通过
    1. 1.1. 原因