1.安装
2.安装jdk
见https://www.jianshu.com/p/f000e05f3512
3.安装maven
见https://blog.csdn.net/qq_38270106/article/details/97764483
4.配置jdk与maven
*_HOME与环境变量一致
5.其他配置
修改ssh配置
配置远程地址 也就是运行项目服务器
修改端口号
6.安装插件
安装Maven Integration,Publish Over SSH
7.新建运行空间
1处:为新建空间名称
2处:需要下载前文的maven插件
只保留3个jar包
开始填写配置
1:项目描述
2:项目的svn路径
3:svn账号密码
每次提交都部署
此处添加日志输出
1处:前面配置运行文件服务器的配置
2处:jenkins服务器本地发布jar包的路径 + jar包名称 可以填写 target/*.jar
3处:打包路径 可以填写 target
4处:ssh 发送jar包的路径
5处:ssh的命令
部署原理是 jenkin把代码拉到本地 然后打成jar包 到2位置处 然后在jar包发到服务器4的路径下 然后执行5处脚本
5处的命令
1. cd /usr/local/* 2. ./*.sh stop 3. ./*.sh start
脚本
#替换这里jar包的路径,其它代码无需更改 APP_NAME=/usr/local/jar/*.jar #使用说明,用来提示输入参数 usage() { echo "Usage: sh item.sh [start|stop|restart|status]" exit 1 } #检查程序是否在运行 is_exist(){ pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'` #如果不存在返回1,存在返回0 if [ -z "${pid}" ]; then return 1 else return 0 fi } #启动方法 start(){ is_exist if [ $? -eq 0 ]; then echo "${APP_NAME} is already running. pid=${pid}" else nohup /usr/local/jdk/jdk1.8.0_231/bin/java -jar ${APP_NAME} > earlywarning.out 2>&1 & echo " =============== 程序成功启动! ===============" fi } #停止方法 stop(){ is_exist if [ $? -eq "0" ]; then kill -9 $pid echo " ============== 程序成功关闭! ==============" else echo "${APP_NAME} is not running" fi } #输出运行状态 status(){ is_exist if [ $? -eq "0" ]; then echo "${APP_NAME} is running. Pid is ${pid}" else echo "${APP_NAME} is NOT running." fi } #重启 restart(){ stop sleep 5 start } #根据输入参数,选择执行对应方法,不输入则执行使用说明 case "$1" in "start") start ;; "stop") stop ;; "status") status ;; "restart") restart ;; *) usage ;; esac
这里有个坑
这里需要填写jdk绝对路径
网上说的什么杀掉进程都不对
nohup /usr/local/jdk/jdk1.8.0_231/bin/java -jar ${APP_NAME} > earlywarning.out 2>&1 &
根据以上填写就可以
在成功情况下才部署
踩过的坑 1:
Jenkins 启动一直显示 Jenkins正在启动,请稍后...
见:https://blog.csdn.net/heatdeath/article/details/79733611
需要你进入jenkins的工作目录,打开 hudson.model.UpdateCenter.xml 把 http://updates.jenkins-ci.org/update-center.json 改成 http://mirror.xmission.com/jenkins/updates/update-center.json
jenkins后台启动方式
见:https://www.jianshu.com/p/264803b1360d
nohup java -jar jenkins.war
Jenkins关闭和重启实现方式.
1. 关闭Jenkins 2. http://localhost:8080/jenkins/exit 3. 重启Jenkies 4. http://localhost:8080/jenkins/restart 5. 重新加载配置信息 6. http://localhost:8080/jenkins/reload
解决nohup: 忽略输入并把输出追加到"nohup.out"或者nohup: 忽略输入重定向错误到标准输出端
见:http://www.yayihouse.com/yayishuwu/chapter/1656
1. 执行nohup java -jar do_iptable.jar & 运行jar会提示:nohup: 忽略输入并把输出追加到"nohup.out" 2. 3. 执行nohup java -jar do_iptable.jar >/dev/null & 运行jar会提示:nohup: 忽略输入重定向错误到标准输出端 4. 5. 修改运行方式为nohup java -jar do_iptable.jar >/dev/null 2>&1 &即可。
这里有个坑:当自定义start版本号不改变但是内容改变 jenkin不会从新拉取jar包