Jenkins+Maven+GitHub自动部署项目到远程服务器(六)

本文详细介绍了如何使用Jenkins进行SpringBoot项目的自动化构建与部署。从环境配置(JDK, Git, Maven, Tomcat)到Jenkins的插件安装,再到具体的项目构建与发布流程,包括使用PublishOverSSH插件进行远程部署,以及解决部署过程中的常见问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考地址:

https://www.jianshu.com/p/ee092bb7c239

https://www.jianshu.com/p/cfa5bb7841d6

 

需:

1、安装jdk,参考:https://blog.youkuaiyun.com/zhaowei5210/article/details/98529785

2、安装maven,参考:https://blog.youkuaiyun.com/zhaowei5210/article/details/98531807

3、安装git,参考:https://blog.youkuaiyun.com/zhaowei5210/article/details/98533135

4、安装tomcat,参考:https://blog.youkuaiyun.com/zhaowei5210/article/details/98530965

参考上几篇博文。

盗用一张图:

图片来源:https://www.jianshu.com/p/cfa5bb7841d6

jenkins基本安装参照上篇博文:https://mp.youkuaiyun.com/postedit/98537997

一、环境配置:

JDK:

GIT:

MAVEN:

二、插件安装

在第一次登陆推荐安装的插件都安装的前提下,还需要安装插件(不然新建Item时可能没有某些选项):

Publish Over SSH插件是远程发布需要的插件。

三、基础配置

点击进入Configure System,然后一直往下

名称:自己写一个

API URL:Jenkins自动填入的

凭据:拉取代码的git账号密码

填入用户密码和密码(拉取gitHub源码的账号和密码)。ID和描述可填可不填,点击添加。

点击链接测试出现红色框框里内容就成功。在一直往下

Passphrase               服务器的密码

Path to key                连接远程服务器密钥文件的路径

Key                            密钥文件的内容 

Name                         自定义服务器名

HostName                  服务器IP外网地址

UserName                  服务器用户名

Remote Directory       传输文件的目录

如果用用户名和密码凭证登录的只需要填SSH Sever信息就行。

四、构建项目发布

对应项如果没有配置截图则代表可以使用默认的,最简单的配置。

选择刚刚添加的git账号

pom.xml是自动填入的,下面是maven的命令:清除-打包-test代码跳过。clean package -Dmaven.test.skip=true

Source files     项目构建后的目录

Remove prefix    去前缀

Remote directoty  发布的目录

Exec command     发布完执行的命令,我这边写的是发布完会重启tomcat

deplaoy.sh内容如下:

#! /bin/bash
# tomcat-restart

#tomcat_home是tomcat的安装目录
tomcat_home=/home/tomcat/apache-tomcat-8.5.43
#下面两个是tomcat自己的关闭和开启脚本
SHUTDOWN=$tomcat_home/bin/shutdown.sh
STARTTOMCAT=$tomcat_home/bin/startup.sh

echo "关闭$tomcat_home"
$SHUTDOWN
#杀死tomcat进程
ps -ef |grep tomcat |grep $tomcat_home |grep -v 'grep'|awk '{print $2}' | xargs kill -9

#删除日志文件,如果你不删除可以不要下面一行(我这里是注释掉的)
rm  $tomcat_home/logs/* -rf
#删除tomcat的临时目录
rm  $tomcat_home/work/* -rf

#关闭后休眠3秒钟再启动
sleep 3

echo "启动$tomcat_home"
$STARTTOMCAT

#看tomcat启动日志
#tail -f $tomcat_home/logs/catalina.out

#sleep 3

#echo "关闭启动日志"
#(我这里需要看tomcat启动是否报错,所以不管日志,注释掉)
#ps -ef |grep tomcat |grep $tomcat_home/logs/catalina.out |grep -v 'grep'|awk '{print $2}' | xargs kill -9

#echo "tomcat 重启脚本执行完毕"

重启脚本参考地址:https://blog.youkuaiyun.com/jieGary/article/details/78930828

①、可能在执行脚本的出现这个错误:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined。

需要设置下路径:

用vim打开tomcat的bin目录下的setclasspath.sh,在文件最上面添加JAVA_HOMEJRE_HOME两个环境变量即可。

export JAVA_HOME=/usr/local/java/JDK/jdk1.8.0_181/
export JRE_HOME=/usr/local/java/JDK/jdk1.8.0_181/jre

参考地址:https://blog.youkuaiyun.com/qq_36850813/article/details/83901793

查找jdk安装路径:echo $JAVA_HOME  或者一个更骚的命令:which is java    还有骚命令:  whereis java, where和is之间是没有空格的

②、执行脚本时还可能出现这个错误:没有权限执行这个新建的重启脚本文件,这时需要登录服务器对文件进行授权:

chmod 777 deploy.sh

保存,然后点击项目

代表构建发布成功,访问ip:端口,我擦,发现访问不了。原来是我的是springboot项目,需要点小改动:

SpringBoot打成war包,部署到Tomcat服务器:

按照这篇博客改:https://blog.youkuaiyun.com/qq_33512843/article/details/80951741

如果项目中用到了HttpServletRequest,本地运行则会报错:

java.lang.ClassNotFoundException: javax.servlet.Servlet

用这个方法:

但是呢,打包部署到远程服务器还是要放开注释的。

最后的最后访问:

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值