Jenkins 发布 Gitee 上的 SpringBoot 项目全过程(详细)

文章说明

本篇文章记录 Jenkins 发布 Gitee 上的 SpringBoot 项目全过程,内容包括 JDK 安装和配置、Maven 安装和配置、Git 安装和配置、Jenkins 部署 SpringBoot 项目的过程、编写项目启动和重启的脚本,通过 Jenkins 实现一键部署项目的功能。

安装所需的环境,如:JDK、Git 等,如果使用 dnf 或 yum,安装过程将会是非常方便,但是在后期要对这些环境进行管理,那将会是比较头疼。为了以后能更加方便的管理这些环境,下面只展示源码安装。如果觉得步骤繁琐,也可以自行使用 dnf 或 yum 安装环境。

本次记录所使用的系统为:腾讯云 CentOS Stream 8 64位,本次操作都是基于 root 用户操作。

安装 JDK 环境

无论是发布 Jenkins 还是发布 SpringBoot 项目,都依赖于 JDK 环境。对于 JDK 版本建议使用 JDK 1.8,下面是安装和配置 JDK 1.8 的步骤。

下载 JDK8 安装包:https://www.oracle.com/java/technologies/downloads/#java8
在这里插入图片描述
下载好后将 JDK 安装包上传到 CentOS 机器中。
在这里插入图片描述
将其解压到 /usr/local 目录下。

tar -zxvf jdk-8u321-linux-x64.tar.gz -C /usr/local/

配置 JDK 的环境:

vim /etc/profile

在尾部添加下面内容:( JAVA_HOME 是解压后的 JDK 路径)

export JAVA_HOME=/usr/local/jdk1.8.0_321
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

在这里插入图片描述
重新加载配置文件:

source /etc/profile

检查 JDK 是否完成配置环境:

java -version
javac -version

在这里插入图片描述
如果能正常显示 JDK 的版本号就说明已经完成了 JDK 的环境配置。如果没有正常显示,请重新按照步骤操作。

安装 Maven 环境

要实现 Jenkins 自动安装和部署 SpringBoot 项目,那么就得需要安装和配置 Mavne 环境,下面是安装和配置 Mavne 环境的步骤。

下载 Maven 安装包:https://maven.apache.org/download.cgi
在这里插入图片描述
下载好后将 Maven 安装包上传到 CentOS 机器中。
在这里插入图片描述
将其解压到 /usr/local 目录下:

tar -zxvf apache-maven-3.8.6-bin.tar.gz -C /usr/local/

配置 Maven 的环境:

vim /etc/profile

在尾部添加下面内容:( MAVEN_HOME 是解压后的 Maven 路径)

export MAVEN_HOME=/usr/local/apache-maven-3.8.6
export PATH=$MAVEN_HOME/bin:$PATH

在这里插入图片描述
加载配置文件:

source /etc/profile

检查 Maven:

mvn -version

在这里插入图片描述
修改 Maven 依赖包的路径、修改 Maven 的仓库地址为阿里云仓库的地址:

vim /usr/local/apache-maven-3.8.6/conf/settings.xml

在 settings 下配置 localRepository 的目录:

<localRepository>/usr/local/maven-repository</localRepository>

在这里插入图片描述
删除或注释 mirrors 里面的内容:
在这里插入图片描述
将 mirrors 标签下改为以下内容:

<mirror>
  <id>alimaven</id>
  <mirrorOf>central</mirrorOf>
  <name>aliyun maven</name>
  <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>
<mirror>
  <id>central</id>
  <name>Maven Repository Switchboard</name>
  <url>http://repo1.maven.org/maven2/</url>
  <mirrorOf>central</mirrorOf>
</mirror>
<mirror>
  <id>repo2</id>
  <mirrorOf>central</mirrorOf>
  <name>Human Readable Name for this Mirror.</name>
  <url>http://repo2.maven.org/maven2/</url>
</mirror>
<mirror>
  <id>ibiblio</id>
  <mirrorOf>central</mirrorOf>
  <name>Human Readable Name for this Mirror.</name>
  <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
</mirror>
<mirror>
  <id>jboss-public-repository-group</id>
  <mirrorOf>central</mirrorOf>
  <name>JBoss Public Repository Group</name>
  <url>http://repository.jboss.org/nexus/content/groups/public</url>
</mirror>
<mirror>
  <id>google-maven-central</id>
  <name>Google Maven Central</name>
  <url>https://maven-central.storage.googleapis.com</url>
  <mirrorOf>central</mirrorOf>
</mirror>
<!-- 中央仓库在中国的镜像 -->
<mirror>
  <id>maven.net.cn</id>
  <name>oneof the central mirrors in china</name>
  <url>http://maven.net.cn/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>

在这里插入图片描述

安装 Git 环境

要实现 Jenkins 自动发布 Gitee 上的项目,那么需要安装和配置 Gitee 环境,下面是安装和配置 Gitee 环境的步骤。

下载 Git 安装包:https://git-scm.com/download/linux
在这里插入图片描述
下载好后将 Git 安装包上传到 CentOS 机器中。
在这里插入图片描述
解压压缩包:

tar -zxvf git-2.37.2.tar.gz

安装相关依赖:

dnf install -y gcc automake autoconf libtool make curl-devel expat-devel gettext-devel openssl-devel zlib-devel

编译并安装 Git 到 /usr/local/git 目录中:

cd git-2.37.2
make prefix=/usr/local/git all install

配置 Git 的环境:

vim /etc/profile

在尾部添加下面内容:( GIT_HOME 是解压后的 Maven 路径)

export GIT_HOME=/usr/local/git
export PATH=$GIT_HOME/bin:$PATH

在这里插入图片描述
加载配置文件:

source /etc/profile

检查 Git:

git --version

在这里插入图片描述
到这里 Git 就已经完成安装了,但是现在 Git 在拉取代码或上传代码时每次都要输入账户和密码,下面的步骤是让 Git 保存账户和密码。

cd ~
git config --global credential.helper store
vim .gitconfig

将内容修改成以下:(将 name 和 email 修改成你的, 一定要注意格式,name 和 email 前面是一个 tab,不是空格)

[user]
        name = jiale
        email = 1727937426@qq.com
[credential]
        helper = store

在这里插入图片描述
然后随便克隆一个该账号下的私有的仓库:

git clone https://xxx/xxx/xxx.git

然后输入账号和密码,此时就会保存账号密码,之后拉取代码或上传代码时就不需要输入账号密码了。
在这里插入图片描述

运行 Jenkins 项目

要在 CentOS 机器中安装 Jenkins 有两种方式:1.使用安装包的方式安装;2.使用 war 包通过 java 直接运行。
既然我们已经在机器中安装了 JDK,那么就直接采用启动 war 包的形式启动 Jenkins。

下载 Jenkins WAR 包:https://www.jenkins.io/download/
在这里插入图片描述
将下载的 Jenkins war 包上传到 CentOS 机器中。
在这里插入图片描述
后台启动 Jenkins:

# 启动的默认端口号为 80080
nohup java -jar jenkins.war > jeckins.log 2>&1 &
# 如果需要指定端口号使用 --httpPort 参数启动
nohup java -jar jenkins.war --httpPort=8081 > jeckins.log 2>&1 &

命令说明

  1. nohup:表示进程在当用户注销或者网络断开时不会被终止。
  2. java -jar jenkins.war:Java 启动 war 包命令。
  3. jeckins.log:表示日志输出到的位置。
  4. 2>&1:表示不仅命令行正常的输出保存到日志文件中,产生错误信息的输出也保存到日志文件中。

启动之后会自动生成日志文件:
在这里插入图片描述
这个文件保存了 Jenkins 的初始密码,查看这个文件:

car jeckins.log

找到默认的密码:
在这里插入图片描述
访问机器的 8080 端口,如果启动时指定了端口号,就访问指定的端口号。
如果无法访问请检查端口号的安全组或防火墙是否开启。

输出 Jenkins 的默认密码,点击继续:
在这里插入图片描述
选择【安装推荐的插件】,等待安装完成
在这里插入图片描述
在这里插入图片描述
进入用户创建页面,自己填写。
在这里插入图片描述
实例配置默认即可,点击【保存并完成】。
在这里插入图片描述
点击【开始使用 Jenkins】。
在这里插入图片描述
此时就已经完成了 Jenkins 的安装。
在这里插入图片描述

Jenkins 全局指定环境

在上面我们安装了 JDK、Maven、Git,这时我们需要告诉 Jenkins 这些环境安装在哪儿。

依次点击【Manage Jenkins】- 【Global Tool Configuration】
在这里插入图片描述
设置 Maven 的 settings.xml 文件的路径:
在这里插入图片描述
设置 JDK 安装路径:
在这里插入图片描述
设置 git 文件的路径:
在这里插入图片描述
【注意】上面的 /usr/local/git/bin/git 是 git 文件的路径,不是 git 的安装路径,如果使用 yum 或 dnf 安装的 git 会在 /usr/bin/git 路径下。
在这里插入图片描述
设置 Maven 的安装路径:
在这里插入图片描述

然后点击保存:
在这里插入图片描述

Jenkins 部署 Gitee 上的 SpringBoot 项目

Jenkins 在构建 maven 项目时,需要先安装 【Maven Integration】插件。

依次点击【Manage Jenkins】- 【Manage Plugins】
在这里插入图片描述
依次操作【可选插件】-【输入框输入 Maven Integration】 -【勾选】-【Install without restart】
在这里插入图片描述
勾选【安装完成后重启Jenkins(空闲时)】
在这里插入图片描述
插件安装好后会自动重启 Jenkins 服务,然后刷新页面重新登录 Jenkins。

然后点击【新建任务】在这里插入图片描述
输入任务名称 - 选择【构建一个 maven 项目】- 【确定】
需要注意的是:只有在 Jenkins 中安装了 Maven Integration 插件,才会有【构建一个 maven 项目】的选项。
在这里插入图片描述
填写【General】信息:
在这里插入图片描述
在【源码管理】中,选择 Git,在 【Repository URL】 输入远程仓库地址,我在 Gitee 中提前创建了 file-depot 项目,并且项目是私有的。
在这里插入图片描述
输入仓库地址和所使用的分支。
在这里插入图片描述
注意:如果在安装 git 的时候,设置了保存用户名和密码,那么就不需要配置 【Credentials】 下的登录凭证信息,如果没有保存用户名和密码,就需要设置【Credentials】下的信息,下面是配置【Credentials】的步骤,已经保存账户名和密码可以忽略下面步骤

依次点击【Credentials】- 【添加】
在这里插入图片描述
输入账号和密码信息,然后点击添加。
在这里插入图片描述
在【Credentials】中选择我们刚刚添加的账号。
在这里插入图片描述
然后点击保存。
在这里插入图片描述
回到首页,点击【Dashboard】
在这里插入图片描述
点击【构建】按钮。
在这里插入图片描述
等待构建,出现以下的信息表示已经构建成功。(第一次构建时没有绿色的√,上图我在事先已经构建过一次,所以才会有绿色的√)
在这里插入图片描述
题外话:比较重要,要理解 jenkins 的工作目录
jenkins 构建其实就相当于在执行 maven 的打包命令,构建完毕之后会生成一个 target 目录和 jar/war 包。

构建的目录在 cd ~/.jenkins/workspace/任务名称 下。

我们看一下家目录:cd ~ 里面存在一个 .jenkins,这个目录就是 jenkins 运行时自动生成的内容。
在这里插入图片描述
进入 .jenkins 目录下,我们在首页创建的所有的任务都保存在 workspace 目录下:
在这里插入图片描述
进入 workspace 目录下,文件夹名字和我们创建任务的名称一致:
在这里插入图片描述
进入任务文件夹,可以看到我们的源代码,以及构建之后生成的 target 目录。
在这里插入图片描述
进入 target 目录,可以看到打包生成的 jar/war 包。
在这里插入图片描述
要启动 jar/war 包,可以使用 java -jar 包名称 命令执行。在 Jenkins 中执行构建之后,可以指定需要执行的 shell 命令或脚本,我们只需要设置好脚本,在每次执行构建结束后,就自动部署执行项目。

题外话结束

要实现 jenkins 在构建完毕后自动执行某些脚本,那就需要再安装一个插件【Post build task】

回到首页,点击 【Manage Jenkins(系统管理)】-【Manage Plugins(插件管理)】-【可选插件】-输入框中输入【Post build task】
在这里插入图片描述
安装 【Post build task】插件,并重启 jenkins。
在这里插入图片描述
刷新页面,重新登录 jenkins,回到首页,点击项目名称:
在这里插入图片描述
点击配置:
在这里插入图片描述
依次点击【构建后操作】-【增加构建后操作步骤】-【post build task】
在这里插入图片描述
在【Log text】下填写内容 test (固定)。
在 【Script】填写以下脚本:

#!/bin/bash
# 这里可替换为你的 war 或 jar 包路径
APP_NAME=target/file-depot-0.0.1-SNAPSHOT.jar

# 检查程序是否在运行
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
date > /root/start.log
if [ -z "${pid}" ]; then
    # 如果程序不存在直接启动程序,根据个人需求是否需要指定端口号
    nohup java -jar $APP_NAME >> /root/start.log 2>&1 &
else
    # 如果已经执行,将程序停止
    echo '程序目前启动中,正在关闭程序...' >> /root/start.log
    kill -9 $pid
    echo '已关闭运行中的程序~' >> /root/start.log
    # 停止之后启动程序,根据个人需求是否需要指定端口号
    nohup java -jar $APP_NAME >> /root/start.log 2>&1 &
fi

脚本需要注意的地方

  1. jenkins 【post build task】下的脚本,当前操作的目录在:~/.jenkins/workspace/任务名称 下。
  2. java -jar $APP_NAME 可以加属性参数,如端口号、应用名称、环境选择等。
  3. 上述的脚本,当程序以及运行时,会自动把已启动的程序停止,然后重新运行程序(也是程序重新发布的操作)。
  4. /root/start.log 为输出日志,可自己定义输出文件的位置。

然后点击保存。
在这里插入图片描述
看下我们现在所占用的端口号:netstat -lnpt
我的 jar 包指定的是 80 端口,目前 80 端口没被使用。
在这里插入图片描述
回到首页,再次点击构建,等待构建成功。
在这里插入图片描述
再次查看所占用的端口号:netstat -lnpt
可以发现 80 端口以及被使用了,证明我们的程序也以及启动起来了。
在这里插入图片描述
访问机器的 80 端口,可以看到我们的项目以及能正常访问了。
在这里插入图片描述
之后我们每次修改了代码,只需要将代码上传到 gitee 中,然后在 jenkins 中点击构建,即可实现重新发布项目。

到此位置 Jenkins 发布 Gitee 上的 SpringBoot 项目全过程就已经结束了~

如果有哪里不明白或者出现步骤不一样的情况,欢迎留言~~

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值