前期准备
创建一个git项目。
这里我通过idea创建了一个SpringBoot的HelloWorld项目。
本地通过Idea确保可以正常的对代码进行push\pull操作。
运行Jenkins。
安装插件
Maven构建
安装Publish Over SSH,这个插件的作用是为了构建完成后,将项目发布到指定的服务器上去。
配置全局SSH
回到Jenkins控制台,点击系统管理-->系统配置 ,找到Publish Over SSH栏,按照自己的服务器配置依次填写host name username password相关内容。
如果没有配置过,点击新增按钮即可。
配置完成可以点击test configuration测试,如果显示success,则表示当前服务器配置正确,可以联通。
创建任务
新建任务
这里,由于安装了maven插件,因此此处会多一个选项:构建一个maven项目
任务配置
这里主要配置的有几个方面。
- git源配置,填写当前项目的git地址,私有项目需要配置授权。
2. 构建环境配置
3. Build配置
Goal and options填写项目构建的命令,
4. Post Steps
选择Run only if build succeeds 并且添加Post步骤,选择Send files or execute command over SSH,配置下图所需的几个参数。
name:选择前面添加的SSH Server
Source files:要推送的文件
Remove prefix:文件路径中要去掉的前缀,
Remote directory:要推送到目标服务器上的哪个目录下
Exec command:目标服务器上要执行的脚本
start.sh内容如下所示:
# jenkins编译之后的jar包位置,在jenkins工作目录下
JAR_PATH=/root/.jenkins/workspace/jenkins-java/target
# 自定义的jar包位置
DIR=/usr/local/api
## jar包的名称
JARFILE=jenkins-demo-0.0.1-SNAPSHOT.jar
if [ ! -d $DIR/backup ];then
mkdir -p $DIR/backup
fi
ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
if [ -f $DIR/backup/$JARFILE ]; then
rm -f $DIR/backup/$JARFILE
fi
mv $JAR_PATH/$JARFILE $DIR/backup/$JARFILE
java -jar $DIR/backup/$JARFILE > out.log &
if [ $? = 0 ];then
sleep 30
tail -n 50 out.log
fi
cd $DIR/backup/
ls -lt|awk 'NR>5{print $NF}'|xargs rm -rf
ps: start.sh文件可能执行不成功,需要给与可执行权限。
chmod 777 start.sh
点击保存。立即构建,构建成功后查看配置服务器路径是否存在jar文件,并且访问对应端口能够成功。
如果一切正常,说明部署成功了。