Jenkins构建部署SpringBoot项目(从安装到一键部署发布)
服务器上需要安装的服务:JDK + MAVEN + SVN我们项目使用的是springboot,所以不需要安装tomcat以及相关插件jenkins安装方式众多,但有些人比较喜欢用jenkins.war方式来安装部署安装Jenkins下载jenkins.war,下载指令如下wget http://updates.jenkins-ci.org/download/war/2.201/jenkins.w
服务器上需要安装的服务:JDK + MAVEN + SVN
我们项目使用的是springboot,所以不需要安装tomcat以及相关插件
jenkins安装方式众多,但有些人比较喜欢用jenkins.war方式来安装部署
(最后面有最新的安装部署方式哦,比这个简单很多)
安装Jenkins - **------------------------------------------------war包形式安装----------------------------------------------------**
下载jenkins.war,下载指令如下
wget http://updates.jenkins-ci.org/download/war/2.201/jenkins.war
- 下载后使用命令找到jenkins.war文件
find / -name 'jenkins.war'

- 使用指令启动jenkins.war文件,指定使用8000端口启动,启动的时候会输出第一次登录的指令,记录下来登录的时候使用
nohup java -Dhudson.util.ProcessTree.disable=true -jar jenkins.war --httpPort=8000
----------------------------------------------rpm形式安装(建议使用)--------------------------------------------------------
linux-CentOS7下安装jenkins与配置环境(完整版)
rpm安装方式
rpm下载地址
链接:https://pan.baidu.com/s/1bZqMcs15mu5fSJxcYh-W6g
提取码:p693
复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V2的分享
安装地址:https://blog.csdn.net/jxysgzs/article/details/114366809
将rpm文件上传到服务器后,执行以下命令
rpm -ivh jenkins-2.263.4-1.1.noarch.rpm
修改jenkins配置
vi /etc/sysconfig/jenkins
修改的内容
JENKINS_USER=“root”
JENKINS_PORT=“8000”
启动
systemctl start jenkins
停止
systemctl stop jenkins
- 口令,如果未记录也可以到图片中的路径文件中查看

启动完成后ip+8000 访问地址获取界面,安装社区建议的插件

创建管理员账号
使用 -
准备工作
1、需要在linux服务器中安装JDK参考笔者博客:Linux中安装配置jdk1.7
2、需要在linux服务器中安装Maven参考笔者博客:Linux安装配置Maven
3、Jenkins入门教程之配置jdk、maven、svn、git(三)参考笔者博客:Jenkins入门教程之配置jdk、maven、svn、git(三)
5、Jenkins入门教程之安装maven构建插件(四)参考笔者博客:Jenkins入门教程之安装maven构建插件(四)
6、Jenkins入门教程之安装Publish over SSH(六)插件并配置参考笔者博客:Jenkins入门教程之安装Publish over SSH插件并配置(六)
7、Jenkins入门教程之安装svn插件并配置(九)参考笔者博客:Jenkins入门教程之安装svn插件并配置(九)
构建项目
Jenkins入门教程之自动构建部署SpringBoot项目(七)使用Jenkins自动部署SpringBoot项目
另外需要特别说明的是启动springboot项目的启动脚本
脚本做的事情是创建backup目录,用于存放替代的jar文件。杀掉之前项目启动中的pid,重启项目并将日志追加。只需拷贝过去口修改DIR变量和JARFILE的参数以及/root/.jenkins/workspace/ic-resouce-cloud/resource-cloud-app/target 参数(该路径在xftp中为隐藏路径,可以通过 工具 》 选项 》显示隐藏文件 查看),另外把脚本文件放置到和jar包同级下即可,另还需要使用chmod 777 脚本名称 授权脚本
DATE=$(date +%Y%m%d)
export JAVA_HOME PATH CLASSPATH
JAVA_HOME=/home/jdk1.8.0_171/
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
#项目中jar包的存放路径
DIR=/data/ic_resource_cloud
#项目的jar包名称
JARFILE=resource-cloud-app-0.0.1-SNAPSHOT.jar
if [ ! -d $DIR/backup ];then
mkdir -p $DIR/backup
fi
cd $DIR
ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
#将前一个版本的jar备份
mv $JARFILE backup/$JARFILE$DATE
#将打包完最新的jar移动到当前目录下
mv /root/.jenkins/workspace/ic-resouce-cloud/resource-cloud-app/target/$JARFILE $DIR/$JARFILE
#根据个人项目启动方式调整启动项目命令
nohup java -jar $JARFILE --spring.profiles.active=prod &
if [ $? = 0 ];then
sleep 30
tail -n 50 out.log
fi
cd backup/
ls -lt|awk 'NR>5{print $NF}'|xargs rm -rf
结构图
问题 - **1、项目运行成功,但是jenkins中报黄色,UNsafe,报错信息如下**
11:01:55 SSH: Disconnecting configuration [项目名称] ...
11:01:55 ERROR: Exception when publishing, exception message [Exec timed out or was interrupted after 240,000 ms]
11:01:55 Build step 'Send files or execute commands over SSH' changed build result to UNSTABLE
11:01:56 [Checks API] No suitable checks publisher found.
11:01:56 Finished: UNSTABLE

- 解决方式:配置Send files or execute commands over SSH时勾选exec in pty选项

2、脚本权限不足
- 解决方式:使用指令
chmod 777 脚本名称授权脚本后再次构建
3.pom文件配置提示错误导致构建失败

修改成默认的或者完整jenkins工作路径即可
再次构建项目,构建成功
****************************20210713更新****************************************
idea整合插件Jenkins Control Plugin,实现idea上一键打包发布,集成后的效果图如下(特别好用)
集成方式一:idea中集成Jenkins

集成方式二:
如果整合时通过Crumb Data报错可以通过password方式,password并不是登录jenkins的密码具体获取方式如下:帐户图标下创建API TOKEN -> 配置 -> API 令牌 -> 添加新令牌。另外还需要在全局安全配置中配置跨站请求,具体配置如下图


--------------------------------20220521更新----------------------------------
之前不知道由于什么原因,jenkins自动停止,并且丢失了上面配置的项目数据,想到要重新配置感觉心很累,所以打算使用docker-compose部署,最终docker-compose文件部署的jenkins在阿里云服务器上时始终无法获取插件地址,网上很多人说是无法访问https的原因,问题也解决了但是依旧不能获取jenkins插件,但是在本地服务器上部署时没有问题,所以在这里分享一下docker-compose.yml文件,另外我在使用的时候想了一下,jenkins配置这么复杂,并且对服务器的配置要求和资源占用都很高,为什么不自己搞一个呢?于是花费了大半天写了一个自动打包发布的脚本,感觉特别好使并且对服务器性能的消耗基本不存在,在这里分享一下,有兴趣的小伙伴可以查看lz的这篇文章:shell脚本自动打包发布项目
docker-compose.yml文件
version: '3.1'
services:
jenkins:
image: jenkins/jenkins:lts
restart: always
user: root
container_name: jenkins
ports:
- "8082:8080"
expose:
- "8082"
- "50002"
privileged: true
volumes:
- ./data/:/var/jenkins_home
- /etc/localtime:/etc/localtime
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- /usr/lib/x86_64-linux-gnu/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
environment:
- JAVA_OPTS='-Djava.util.logging.config.file=/var/jenkins_home/log.properties'
更多推荐


所有评论(0)