jenkins教程菜鸟_使用 jenkins 自动化部署应用(写给新手的)
jenkins官网: https://jenkins.io/
jenkins.war 的下载地址
链接:https://pan.baidu.com/s/1fhlnxpkQwwkIzurGdrqEiA
提取码:nn32
准备环境
linux 服务器一台 (version:7.4 ,bit:64)
服务器安装好 JDK (version:1.8 ,bit:64)
服务器安装好 tomcat (version:8.0.52)
服务器安装好 maven (version:3.5.0)
服务器安装好 svn /git (两个选一个安装,我这里以svn为例)
将下载好的 jenkins.jar 放到 ./tomcat/webapps/ 目录下,并启动 tomcat (jenkins.war可以去官网下)
请保证上述环境都已准备完毕…
登录jenkins
启动 tomcat 后,在浏览器输入:localhost:8080/jenkins (我的tomcat使用的是 8080 端口)
jenkins第一次启动时会将密钥存在一个文件中,当第一次登录时,需要进行验证。我们将页面中提示的路径打开,将里面的内容填入图中的文本框中,然后我们点 Continue
初始化中,让子弹飞一会~
这个页面提示你安装一些插件,左边是 jenkins 推荐安装的插件,右边是告诉你可以自已选择哪些装。
Tips: 如果没有特别要求,可以选择左边的窗口,后期需要安装其它插件的话,也可以再到 jenkins 页面安装
楼主这里选择左边 jenkins 推荐的一些插件,如图上,正在安装中…
Tips: 这个过程需要联网!
创建一个超级管理员用户,信息请自行填写。Tips: 后续登录 jenkins需要使用到的登录信息
访问 jenkins 的路径配置,如果无特殊要求,默认就好。
jenkins 已经准备就绪,我们点 start using jenkins 就可以看到它的管理界面了
安装Maven插件
jenkins第一次创建 maven项目,需要先安装maven插件,否则在创建项目的时候没有构建Maven项目这一选项
在主页面选择 系统管理,再选择插件管理
在输入框中输入:Maven Integration,勾选,并安装它
配置全局环境
在主页面选择 系统管理,再选择全局工具配置,我们进行,jdk、maven 的配置
以下配置的路径全都是服务器该软件的安装路径,请不要配置错
创建一个maven项目
在主页面选择New任务,开始创建一个项目,并在弹出的页面方框中输入你的项目名称,输入名称后,我们选择 “构建maven项目”,点 OK,进入下一步。
简单的说一下,如何让当前项目与你 svn 或 git 上的代码进行关联
在下图中选择 Git 或 Subversion (我以svn为例,git差不多)
Repository URL 中 输入你的代码地址
Credentials 是拉这个代码需要的账号和密码,点击右边的 Add可以添加(只需要输入username 和 password 这两项就行了)
这里不得不提一下 Build Triggers,有时候项目需要自动触发,比如说提交代码后触发、定时触发等等,都需要在这里配置。
这里留个todo,有时间我一定会补上!
指定项目的构建信息
Root POM 指定项目的 pom.xml 的路径
Goals and options 指定构建时所附加的参数
clean install -Pprod -Dmaven.test.skip=true
clean install 是maven的常用命令,不再解释
-P 是指定启动的环境,我所指定的是prod,表示加载 application-prod.yml 里面的配置(多配置前面博客中有提到)
-Dmaven.test.skip 指在编译、打包时不执行测试用例,也不编译测试用例类
1
2
3
4
执行自定义的脚本
jenkins 把项目构建完成后,生成的 war/jar会在/root/.jenkins/workspace/项目名/项目名/target/目录下,我们利用命令将 war/jar 复制到指定目录下,然后执行 sheel脚本进行发布
BUILD_ID=DONTKILLME
cp /root/.jenkins/workspace/offline-app-order/offline-app-order/target/offline-app-order-1.0-SNAPSHOT.jar /usr/local/projects/offline-app-order/application-temp.jar
sh /usr/local/projects/offline-app-order/run-app.sh
1
2
3
第一行:防止 jenkins 构建完成后杀掉 sheel 进程,导致自动部署失败
第二行:将 jenkins 打的包复制到服务器的 指定位置,并重命名为 application-temp.jar
第三行:执行一个自己写好的 sheel 脚本(此脚本完成杀进程,重启进程的工作) - 该脚本放在本文的最后!
1
2
3
重要:配置完成后,点击Save将所有配置进行保存!
构建项目
上面的操作完成后,在主页可以看到刚创建好的项目,我们点这个项目名称,进入项目详情
点击立即构建按钮,开始构建项目
构建开始时,可以在左下角看到条目,也可以点开条目,看构建日志
红色圆圈:构建失败
蓝色圆圈:构建没问题,脚本执行也没问题,但是不保证项目能启起来 (说不定有其它服务器问题)
查看构建日志(无论怎么构建失败的,都可以进去看日志,日志里面会写的很详细)
最后,分享一个我服务器上的脚本(run-app.sh)
#!/bin/sbin
present_time=`date +%Y%m%d%H%M%S`
echo "current time: ${present_time}"
temp_jar_name=application-temp.jar
normal_jar_name=offline-app-order.jar
jar_path=/usr/local/projects/offline-app-order/
log_file=/usr/local/projects/offline-app-order/logs/application-run.log
LANG=UTF-8
echo "=============== publish =============="
echo "step 1: stop application"
pid=`ps -ef | grep ${normal_jar_name} | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
echo "kill -9 ${normal_jar_name}, pid is: ${pid}"
kill -9 $pid
fi
echo "step 2: backup application"
#mv ${jar_path}/${normal_jar_name} ${jar_path}/${normal_jar_name}-${present_time}
rm -rf ${jar_path}/${normal_jar_name}
echo "step 3: replace application-temp.jar to application.jar"
mv ${jar_path}/${temp_jar_name} ${jar_path}/${normal_jar_name}
cd ${jar_path}
echo "step 4: chmod application"
if [ -f "${normal_jar_name}" ]
then
echo "chmod 777 to ${normal_jar_name}"
chmod 777 ${normal_jar_name}
fi
cd ${jar_path}
echo "step 5: start application"
nohup java -jar ${normal_jar_name} > ${log_file} 2>&1 &
echo "publish is ok"
#echo "nohup java -jar ${normal_jar_name} > ${log_file} 2>&1 &"
jenkins教程菜鸟_使用 jenkins 自动化部署应用(写给新手的)相关推荐
- jenkins教程菜鸟_菜鸟 jenkins自动化测试构建实战
之前写了一个karate框架的接口自动化项目,一直想通过jenkins定时跑起来,这样就方便实时监控接口运行动态了,于是乎我决定在本地下载docker搭建个jenkins容器来构建该项目~ 对于doc ...
- maven配置自动部署到服务器上,jenkins+svn+maven安装配置并自动化部署成功(超级详细)...
jenkins+svn+maven安装配置并自动化部署成功(超级详细) jenkins+svn+maven安装配置并自动化部署成功(超级详细) 简言 写这篇博客的原因是因为每次部署服务器的流程都是在做 ...
- (三)jenkins+bonobo git server+windows系统自动化部署springboot项目(远程windows自动化部署)
前提 jenkins安装,参考:(一)jenkins+bonobo git server+windows系统自动化部署springboot项目(jenkins安装) 自动化部署,参考:(二)jenki ...
- (二)jenkins+bonobo git server+windows系统自动化部署springboot项目(自动化部署)
前提:jenkins安装 参考:(一)jenkins+bonobo git server+windows系统自动化部署springboot项目(jenkins安装) 1插件下载 主要是检查如下插件是否 ...
- jenkins结合ansible用shell实现自动化部署和回滚
最近用jenkins+gitlab+ansible做持续化集成,自动化部署和版本回滚.然而deploy plugin没能做到增量升级和回滚操作,折腾了很久决定自己写个脚本来简单实现. 环境: cent ...
- Jenkins + 云效 前后端项目自动化部署
环境安装 创建目录 后续下载的内容 放在里边方便管理 cd /mkdir dockercd dockermkdir maven mkdir jenkinsmkdir javamkdir registr ...
- java部署平台_开源Java自动化部署平台JDeploy
JDeploy是Java + Shell实现的基于Linux系统的自动化.可视化的项目部署平台,能部署Java服务.Java Web项目,可以简化项目部署操作,无需繁琐的黑窗口SSH指令及Jenkin ...
- 开源运维管理软件排名_云上自动化部署和运维的正确姿势
导读:今天起,"凌云时刻"特别推出"阿里云玩转 ECS"系列课程,每周二.周四固定更新,欢迎关注.本期为系列第 1 讲,由阿里云资深技术专家吴君印介绍上云最正确 ...
- java自动化部署平台_开源Java自动化部署平台JDeploy
JDeploy是Java + Shell实现的基于Linux系统的自动化.可视化的项目部署平台,能部署Java服务.Java Web项目,可以简化项目部署操作,无需繁琐的黑窗口SSH指令及Jenkin ...
最新文章
- 什么是 C 和 C ++ 标准库?
- mysql保留字-关键字表
- vscode regex previewer插件怎么用_分享五款开挂神器!助你效率倍增!做PPT怎么能不会用插件?...
- markdown这么好用的东西我才知道。。。多么不折腾的我。。。
- Studio系列教程来啦
- C++ - 操作运算符
- android 改变音乐格式,音乐速度变更器app-音乐速度变更器下载v9.4.4-hu安卓版-西西软件下载...
- 腾讯微博开放平台授权教程(一)
- Typora上传图片终于解决了
- php 利用gd库及tcpdf 自动多图片生成pdf
- PNP三极管工作原理
- date_sub函数
- 蒙提霍尔问题及其推广
- 房贷要不要提前还款两种还款方式比较
- [附源码]计算机毕业设计Python作业查重系统(程序+源码+LW文档)
- 一个人如何“破圈”?
- GBase SQL语法(一)
- 温州富商透露发财22条秘诀:坚持看新闻联播
- matlab 深度学习黑暗图片画质增强
- 电脑故障维修大全 [2]
热门文章
- 什么是独立服务器,它与VPS有何不同?
- 王者荣耀服务器维护中可是别人能玩,王者荣耀在玩时候被别人登了怎么办 | 手游网游页游攻略大全...
- ae等高线_等高线圆圈图形动画AE脚本 Aescripts Topograph v1.0.2 + 视频教程
- 怎么用css画一个心形_如何用CSS创建心形
- 【转】关于NFS讨论 参数说明
- 哈哈!真的很经典!选两句作为你的个性口头禅吧
- 【百度百科】SHSH
- 安卓 background的图片随着textview的大小而改变_苹果4G内存吊打安卓8G内存?看看苹果是怎么虐安卓的!...
- JAVA SpringBoot部署自己的Chatgpt网站实录
- linux sockaddr in,Linux C中sockaddr和sockaddr_in的区别