jenkins 自动编译,发布,运行项目
jenkins 自动编译,发布项目
目的
检测svn/git项目改动,如果改动则自动拉出源码,编译好,上传到服务器上,关闭服务器上运行的项目,并启动新编译的项目
条件
项目由svn或git管理
这里以maven项目举例子
有远程服务器或本地起虚拟机模拟都行,但要能shh链接上
步骤
1.配置好jenkins 达到自动编译的效果
- 1.创建jenkins maven风格的项目
- 2.源码管理选择subversive,填好url 密钥
- 3.构建 poll SCM 填写 corn表达式,因为开发阶段更新比较频繁,这里没两分钟检测一次 H/2 * * * *
- 4.保存并构建一下
如果上面没配置错误的话,手动启动构建一下会从svn上拉出源码,并在【jenkins安装目录\workspace\项目文件名\】文件夹下进行编译,
java项目的话会target目录下生成jar/war包
2.继续配置jenkins
1.转到post Steps 选择 ‘send files or execute commands over SSH’ 前提装好jenkins的ssh插件并配置好,选择
Run only if build succeeds
这样只有编译成功了才执行上传操作2.选择好服务器
3.Source files 填写【target/sc-pro-1.0.jar】路径是相对于【jenkins安装目录\workspace\项目文件名\】来处理的,sc-pro-1.0.jar按照实际的来
4.Remove prefix 即移除路径前缀,就是上面填写的字符串,我们只保留文件名,将前面的字符串都去除这里填写【target/】
5.Remote directory 远程文件夹的路径这里我填写【/home/suu/sprintboot8585/temp】这样就把第一次填写的文件路径,去除第二部填写的前缀,通过ssh传输到【/home/suu/sprintboot8585/temp/sc-pro-1.0.jar】,如果上一步的targer/不填写就会在服务器上的temp文件夹下创建目录结构【/home/suu/sprintboot8585/temp/target/sc-pro-1.0.jar】
6.Exec command 这里填写执行的linux命令,我们事先写好sh脚本放在服务器上,这里启动脚本,我填写【source /home/suu/sprintboot8585/temp/display_sc-pro.sh】
3.服务器脚本编写,脚本逻辑
- 1.找到项目任务pid
- 2.kill掉项目
- 3.将项目从上传的temp文件夹下移动到真正执行的目录下
- 4.启动新项目
我的springboot项目是这样编写的
1 |
|
####4.回到jenkins,手动发布一下,观察console输出信息,能正确获取源码,编译,测试,上传,杀死程序,启动程序
jenkins 自动编译,发布,运行项目
https://www.huangchaoyu.com/1995720483.html