说明:部署springboot项目的jar
一、准备工作:
1.安装JDK:安装JDK 2.安装Tomcat:安装Tomcal 3.安装maven:安装maven 4.安装svn:安装svn 5.安装git: 安装git 6.安装jenkins: 安装jenkins

二、插件管理(Manage Plugins)

jenkins 通过node自动构建项目_jenkins


1.Publish over SSH**(远程部署时需要,和Jenkins不在同一个服务器上时)**

jenkins 通过node自动构建项目_git_02


3.安装完重启

jenkins 通过node自动构建项目_jdk_03


三、系统配置(Configure System)

jenkins 通过node自动构建项目_centos_04


1.Publish over SSH (注:如果是同一台服务器可以不用配置)

jenkins 通过node自动构建项目_maven_05


注:Remote Directory,后面会有用处说明,下面只会说Remote Directory四、全局工具配置(Global Tool Configuration)

1.JDK配置(红框内是jdk的安装目录)

jenkins 通过node自动构建项目_maven_06


2.Maven配置(红框内是maven 的安装目录)

jenkins 通过node自动构建项目_git_07


3.Git配置,如果不使用 Git,删除即可

jenkins 通过node自动构建项目_centos_08


4.点击保存,自动退出五、创建任务

1.新建任务

jenkins 通过node自动构建项目_jenkins_09


jenkins 通过node自动构建项目_centos_10


如果没有构建一个maven项目,那是因为没有安装maven插件,去插件管理中安装Maven Integration

2.配置项目

1)General

勾选丢弃旧的构建,选择是否备份被替换的旧包。我这里选择备份最近的10个。描述可以不填

jenkins 通过node自动构建项目_jenkins_11


2)源码管理

①.( Subversion)

Repository URL :svn版本库地址

Credentials :svn用户名/密码。如果没有添加就添加一个

jenkins 通过node自动构建项目_jdk_12


②.( Git)

Repository URL :项目git地址

Credentials :git用户名/密码。如果没有添加就添加一个

指定分支(为空时代表any):指定git项目的分支

jenkins 通过node自动构建项目_maven_13


3)构建触发器

*/10 * * * *

**说明:**每10分钟检查一次源码变化,如果有更新才build。也可以自己去定义定时

jenkins 通过node自动构建项目_jdk_14


4)构建环境

jenkins 通过node自动构建项目_git_15


5)Pre Steps(此处无需配置)

6)Build

clean install -Dmaven.test.skip=true -Ptest

jenkins 通过node自动构建项目_jdk_16


7)Post Steps

jenkins 通过node自动构建项目_centos_17


打开Execute shell,添加下面的命令

#!/bin/bash
# /opt/repo/是新建的目录
# 进入目录
# stop.sh:停止应用
# replace.sh:拷贝应用jar
# startup.sh:运行jar
cd /opt/repo/
./stop.sh
./replace.sh
echo "Execute shell Finish"

BUILD_ID=dontKillMe nohup /opt/repo/startup.sh &

jenkins 通过node自动构建项目_git_18


注意:在/opt/repo/目录下创建startup.sh、stop.sh、replace.sh文件和project目录

1.创建replace.sh

vim replace.sh

添加下面命令

#!/bin/bash
# replace.sh
# demo是在Jenkins中创建的任务名称
#  /opt/repo/project 是新建存放jar包的目录,将Jenkins生成的jar包拷贝到这个目录下
cp /root/.jenkins/workspace/demo/target/demo.jar /opt/repo/project

2.创建startup.sh

vim startup.sh

添加下面命令

#!/bin/bash
framework="demo.jar"

#check whether the main class is running in the process.
processid=$(ps aux|grep ${framework}|grep -v grep|awk '{print $2 }')
if [ "$processid" = "" ];
then
	echo "demo";
else
	echo "demo is running in the process!"
	echo "For processid:${processid}"
	exit 1
fi

nohup java -jar demo.jar 2>error.log 1>info.log & 

#tail -f nohup.out
exit 100

3.创建stop.sh

vim stop.sh

添加下面命令

#!/bin/bash

framework="demo.jar"

#check whether the main class is running in the process.
processid=$(ps aux|grep ${framework}|grep -v grep|awk '{print $2 }')
if [ "$processid" = "" ]
then
	echo "demo is not running in the process!";
else
	echo "Stop demo."
	kill ${processid}
	
fi

4.设置执行文件的权限

chmod 755 replace.sh
chmod 755 startup.sh
chmod 755 stop.sh

5.创建project目录

mkdir project

因为我Jenkins和要部署的代码都在一个服务上,所以没有配置远程操作

name: 是Publish over SSH里面的名称

Source files :要上传的文件,即压缩文件

Remote directory : 指定上传的目录

Exec command: 上传成功需要的操作

jenkins 通过node自动构建项目_jenkins_19


7)构建设置(此处没有配置)

jenkins 通过node自动构建项目_maven_20


8)构建后操作(此处没有配置。可以自行选择)

jenkins 通过node自动构建项目_git_21


9)保存退出六、立即构建项目

1.立即构建

jenkins 通过node自动构建项目_jdk_22


2.查看控制台输出

jenkins 通过node自动构建项目_maven_23


jenkins 通过node自动构建项目_jenkins_24


构建完成,可以用postman测试,也可以浏览器测试

提示:编译过程可能会报错,根据错误信息进行修改,然后再次build
构建完成,有可能项目启动失败,查看log进行修改