linux 压缩包覆盖问题

    最近提交代码自动化构建发布的时候,出现了之前被删除的代码还是被打包发布了的问题。

    流程是这样,jenkins通过定时任务获取git的提交,检测到有新提交时,就把代码拉下来通过maven进行build。

    由于jar包太大,就没用maven打的包,使用zip命令只将除lib外的文件夹打成war包到指定目录,然后cp到另一台服务器

    整个脚本是之前同事写的,经过一步一步的分析,找到了原因:使用zip -r /tmp/xxx.war * 将压缩包存入指定目录,上次的文件没有被删除。

    压缩包覆盖只是会替换压缩包内相同路径下的同名文件,如果旧的压缩包的有些文件在新的压缩包中没有,这些文件还是会保留在新压缩包中。从而导致了每次发布项目都会出现被删除的代码还是存在。

    解决方法就是每次压缩前先删除掉上次留下的war包即可。

    第一次碰到这个问题,记录下,防止后续自己写脚本再次犯错。

原文地址:https://www.cnblogs.com/AwenDF/p/5508668.html