每周一坑-jenkins发布拷贝不了文件到远程
作者:互联网
jenkins发布拷贝不了文件到远程
好久没写这个专题了~~~~
今天部署一个工单系统的时候,架构前后端分离:前端nginx代理的静态目录(npm编译),后端一个war包(跑在tomcat里面)
简单介绍下这个项目结构,前后端代码用的是同一个gitlab地址,所以需要用不同目录来区分前后端,代码结构如下:
今天主要是讲jenkins配置里面的构建后操作:Send build artifacts over SSH
一、项目前端配置
1、【构建】——》 【执行shell】配置
前端npm编译,没啥问题,直接进去frontend目录,运行关键两条命令:
cd xxx-frontend npm install npm run build:test ##最终会生成一个dist目录,拷贝到远程发布 tar -zcf dist.tar.gz dist
2、【构建后操作】
其中shell 脚本主要做的工作是把dist.tar.gz解压,然后把里面的文件拷贝到nginx默认网站根目录 html 路径。最后nginx虚拟主机配置文件指向该目录,浏览器即能访问。
二、项目后端配置
后端,这个有点坑~~~
看架构图,很多个pom.xml文件,然后开发说直接用最外层的 pom.xml 去编译就行(就是backend后面的第一个pom.xml)
1、【Pre Steps】和 【Build】 配置
2、【构建后操作】
在jenkins配置中的“构建后操作”,Send build artifacts over SSH,配完之后一直报错: pom.xml文件编译后,我发现 app目录和 xxx-party 目录都生成 target目录,里面都有各自的war包当时跟开发确认过,app下的war包才是需要的,不要拿 xxx-party下的。
在我贡献了10个jenkins发布报错后,发现这样的配置才是正确的:
首先即使在上面,已经进去到 backend 目录下了(Pre Steps 图),我们理所当然地会以为直接从 backend 算起的相对目录来数这个war包位置(Source files),其实是不对的,要从backend 算起!!!!
如下图:
标签:xml,dist,pom,一坑,jenkins,拷贝,目录,backend 来源: https://www.cnblogs.com/windysai/p/16443155.html