jenkins和gitee自动化部署springboot项目(代码片段)

风在哪 风在哪     2022-12-10     530

关键词:

Centos使用Jenkins和Gitee自动化部署Spring Boot项目

本教程是在腾讯云上面通过jenkins.war包进行Jenkins的部署,没有采用docker和yum的方式。此外,本项目是在云服务器本地进行自动构建,所以就没有配置publish over ssh

环境准备

首先我们需要确保已经安装了jdk、maven和git环境。因为Jenkins需要使用git从gitee上面拉取项目源码,然后通过maven进行构建,然后需要通过jdk运行构建好的项目,所以这里需要这些环境

jdk安装

安装jdk只需要将下载好的压缩包上传至云服务器,然后配置相应的环境变量即可。

我这里下载的是jdk-8u291-linux-x64.tar.gz,下载地址:jdk8

下载完成后上传至云服务器,我这里上传到了/usr/local/目录下,在改目录下直接运行如下命令进行解压即可:

tar -zxvf jdk-8u291-linux-x64.tar.gz

解压完成后要配置环境变量,主要是编辑/etc/profile文件,这里使用vim进行文件的编辑操作

vim /etc/profile

然后在文件的末尾添加如下环境变量:

export JAVA_HOME=/usr/local/jdk1.8.0_291
export CLASSPATH=:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

添加完成后运行如下命令:

source /etc/profile

jdk到这里就配置好了。

可以通过java -version检验配置是否成功。

maven安装

maven下载网址:https://maven.apache.org/download.cgi,下载apache-maven-3.8.1-bin.tar.gz即可

将下载好的文件上传至云服务器,我这里直接上传到了/usr/local/目录下,然后直接将其解压

tar -zxvf apache-maven-3.8.1-bin.tar.gz

解压完成后我们需要修改部分配置,这里已知maven的安装路径为/usr/local/apache-maven-3.8.1,我们需要修改安装路径下conf/settings.xml文件。主要修改两点:

  • 第一点就是maven的镜像,使用阿里云镜像可以极大的加快速度

    <mirrors>
        <mirror>  
           <id>alimaven</id>
           <name>aliyun maven</name>
           <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
           <mirrorOf>central</mirrorOf> 
        </mirror>
      </mirrors>
    

    直接将mirrors节点中的镜像改为阿里云镜像,其他的都注释掉即可

  • 第二点就是maven仓库的位置,maven仓库我直接在maven的安装目录下新建了repository文件夹,然后配置localRepository节点即可,localRepository节点紧挨settings节点

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

接下来就是配置环境变量,同样是在/etc/profile文件中添加环境变量,内容如下:

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

然后再运行source /etc/profile使其生效即可。

然后可以运行mvn -v命令查看是否配置成功

git安装

这里采用的源码安装的方式进行git的安装操作,没有使用yum安装是因为yum安装的git版本比较低,所以直接通过源码编译安装。

源码下载地址:https://github.com/git/git/releases,我下载的2.31.1版本的git

同样,将下载好的git-2.31.1.tar.gz上传到/usr/local目录下,然后对其进行解压。

tar -zxvf git-2.31.1.tar.gz

解压完成以后,我们就得到了解压后的源码,然后进入到解压后的目录:/usr/local/git-2.31.1,接下来就是编译源码,但是在编译源码之前,我们需要先安装一下依赖:

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

当这些依赖安装完成以后,系统自动为我们安装了git,此时我们要卸载掉旧版本的git:

yum -y remove git

接下来在源码所在的目录下编译源码:

make prefix=/usr/local/git all

然后将git安装到/usr/local/git目录下

make prefix=/usr/local/git install

接下来又是配置环境变量的配置,相信不用说大家都知道怎么配置了吧:

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

配置完成以后运行git --version检查配置的成果

这里没有配置user.name和user.email,因为只是使用git来拉取代码,没有进行代码的修改和提交操作,所以暂时没有进行这些配置

至此环境都准备好了,开始正主Jenkins的安装了。

安装Jenkins

这里采用的是直接运行Jenkins提供的war包,所以,我们首先需要去Jenkins下载对应的war包。

这里是在Jenkins的用户手册的安装Jenkins章节里面找到的下载war包的地址(点击下图中红框内的文字)

但是有一个小问题,就是点击了它的网址之后没有反应,点了好几次都是这样,所以我就打开控制台看了一下,发现有报错

找到了问题原因,就是https网址下不能访问http协议的网址。所以直接点击这个连接即可:http://ftp-chi.osuosl.org/pub/jenkins/war-stable/2.277.4/jenkins.war,至此,jenkins.war包就下载完成了

下载完成以后将jenkins.war包上传到云服务器,然后通过nohup命令后台运行:

nohup java -jar jenkins.war --httpPort=9000 > jenkins.log 2>&1 &

这里通过httpPort来修改了端口号,然后将Jenkins的日志输出到jenkins.log中。这里2>&1就是用来将标准错误2重定向到标准输出1中的。此处1前面的&就是为了让bash将1解释成标准输出而不是文件1。至于最后一个&,则是让bash在后台执行。

当执行完成后,我们可以去浏览器访问Jenkins,访问网址就是你的ip地址加端口号9000,例如:192.168.1.114:9000

初次访问会等一小会:

然后就要输入管理员密码,管理员密码在/root/.jenkins/secrets/initialAdminPassword文件中。

输入密码之后就进入下面插件安装的页面,这里选择安装推荐的插件:

插件安装完成之后就可以创建用户了:

创建完成后通过账号和密码登录即可。

登录完成之后我们要安装如下两个插件:Maven Integration plugin和Gitee Plugin,只有安装了这两个插件之后才能通过Jenkins部署gitee的spring boot项目

配置Jenkins

进行全局工具配置

这里要配置maven、git和jdk三种环境。

首先是maven的settings.xml文件的地址:

接着就是jdk的地址:

然后是git的地址,注意这里是/usr/local/git/bin/git

最后是我们本地maven的地址:

其他暂未使用到的环境未进行配置,如ant和gradle

配置Gitee

接下来就是配置gitee相关的属性。此时我们要在configure system中配置:

其中链接名可以任意取,但是Gitee的域名必须是https://gitee.com,如果是个人的主页的话会出现404的情况。

接下来就是配置Gitee的API令牌,这里要选择Gitee API令牌配置。

接着将api令牌输入即可,id和描述任意

Gitee API令牌的获取

登录gitee之后,访问如下网址:https://gitee.com/profile/personal_access_tokens,然后生成新的令牌:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yvmg1iR6-1622036752989)(E:\\学习笔记\\StoragePicture\\image-20210526210017786.png)]

填写令牌的描述:

提交之后输入密码即可查看私人令牌,而且该令牌只显示一次,要妥善保存。将该私人令牌填入刚才的Jenkins Gitee APIV5私人令牌即可。

配置完成之后可以测试是否能成功连接:

创建自动构建任务

点击新建Item创建任务:

创建任务时要选择构建maven项目,如果没有这个选项的话要去安装maven插件。这里还要注意任务的名称,Jenkins会根据任务名称生成指定的文件夹,通过git获取的项目源码会存在该文件夹下,这里后面会用到。

然后要进行任务的配置:

描述可以随意写,表明任务的主要作用即可

然后要选择丢弃旧的构建:

源码管理

接着在源码管理时要根据仓库的地址进行管理:

git仓库的地址就是我们git clone使用的地址,接着还要配置Credentials,这里我们使用Username with password类型的配置:

如果git仓库是自己所有的话就填写自己Gitee的账号和密码(仓库的成员也可),否则要填写仓库成员或仓库拥有着的gitee账号和密码

填写完毕后选择我们刚配置好的Credentials。如果这里没有标红就证明没错误,例如:

构建触发器

这里我们选择webhook构建触发器,在gitee的webhook中要填写此处的URL:

然后点击生成产生webhook的密码:

生成密码之后要去git仓库进行操作。

在创建webhook时要填写Jenkins中生成的网址和密码,然后添加即可

Pre Steps

pre steps就是在执行构建之前的一系列操作,这里我们的操作就是停止上次构建成功后运行的任务,这里选择执行shell命令即可。

shell命令如下:

echo "准备停止learn-0.0.1-SNAPSHOT.jar"
pid=`ps -ef | grep 替换为你的jar包名称 | grep -v grep | awk 'print $2'`
if [ -n "$pid" ]
then
   kill -9 $pid
fi
echo "停止learn-0.0.1-SNAPSHOT.jar完毕"

Build

这里我们指定全局命令即可:

clean package -Dmaven.test.skip=true

这个命令的意思就是:

  • clean:在进行真正的构建之前进行一些清理工作,移除所有上一次构建生成的文件。执行该命令会删除项目路径下的target文件,但是不会删除本地的maven仓库已经生成的jar文件
  • package:打包。将工程文件打包为指定的格式,例如JAR,WAR等(看你项目的pom文件,里面的packaging标签就是来指定打包类型的)。这个命令会在你的项目路径下一个target目录,并且拥有compile命令的功能进行编译,同时会在target目录下生成项目的jar/war文件。如果a项目依赖于b项目,打包b项目时,只会打包到b项目下target下,编译a项目时就会报错,因为找不到所依赖的b项目,说明a项目在本地仓库是没有找到它所依赖的b项目,这时就用到install命令。
  • install:安装。将包安装至本地仓库,以让其它项目依赖。该命令包含了package命令功能,不但会在项目路径下生成class文件和jar包,同时会在你的本地maven仓库生成jar文件,供其他项目使用(如果没有设置过maven本地仓库,一般在用户/.m2目录下。如果a项目依赖于b项目,那么install b项目时,会在本地仓库同时生成pom文件和jar文件,解决了上面打包package出错的问题)。
  • -Dmaven.test.skip=true:不执行测试用例

Post Steps

这里也选择执行shell命令

这里的操作就是当Jenkins打包完成之后,将打包的文件移动到指定的文件夹下并运行。

注意:这里workspace目录下的test_spring_boot就是任务名,Jenkins根据任务名创建存储源码的目录
这里要注意将相关的目录和文件名配置成自己的目录和文件名,否则会失败的哦!

BUILD_ID=DONTKILLME
echo "移动jar包到webee目录,并去掉版本号名称"
if [ ! -d "/home/code" ];then
  mkdir /home/lighthouse/code
  else
  echo "文件夹已经存在"
fi

if [ ! -f "/home/code/learn-0.0.1-SNAPSHOT.jar" ];then
  echo "文件不存在"
  else
  rm -f /home/code/learn-0.0.1-SNAPSHOT.jar
fi

mv -f /root/.jenkins/workspace/test_spring_boot/target/learn-0.0.1-SNAPSHOT.jar /home/code/learn-0.0.1-SNAPSHOT.jar
echo "移动jar包完成"

echo "启动testJenkins服务"
nohup java -jar /home/code/learn-0.0.1-SNAPSHOT.jar > /home/code/learn.log 2>&1 &
echo "启动testJenkins服务完成"

当配置完成以后就可以开始构建了:

构建完成后我们可以查看构建结果,在控制台输出中可以查看这次构建的日志:

在左下角也可以看到构建的成功和失败,红色代表失败:

最后

当我们修改项目并且提交的git仓库之后,Jenkins会自动帮助我们构建,这里就是webhook的作用。

通过Jenkins给我们带来了极大的遍历。我们很方便地进行项目的部署,不再做哪些重复的操作,将我们从这些重复的操作之中解脱出来,提高开发的效率。

感谢阅读到最后的读者,有什么问题可以在评论区一起讨论哦!

参考

初生牛犊被人煮

无意的根本

docker+jenkins+gitee+maven构建自动化部署(代码片段)

Jenkins的环境构建和项目自动化部署docker-compose部署配置jenkins步骤1:Docker下载jenkins镜像并运行容器步骤2:访问jenkins2.1.jekins访问:2.2.进入jenkins获取密码步骤3.选择jenkins安装推荐的插件步骤4.选择jenkins安装插件步骤5&#x... 查看详情

jenkins-一篇就能上手gitee(码云)代码自动化构建

...么部署,Jenkins部署请转移到Jenkins-一篇就能上手Jenkins自动化部署,而是讲解如何提交代码到Git上,然后自动触发Jenkins构建,这个中间的自动化过程~开始安装插件(Gitee)新增令牌(GiteeAPIV5私人令牌... 查看详情

jenkins+docker+gitee+springboot自动化部署(代码片段)

...烦。基于此,我们就需要使用Jenkins配合Gitee搭建一个自动化部署平台,并将代码托管到服务器上&# 查看详情

jenkins+gitee+ssh自动化部署(代码片段)

一、准备环境  1,配置maven(MAVEN_HOME)  2,配置jdk(JAVA_HOME)我这里用的jdk1.8.0_121,之前碰到过一次别的版本的jdk在启动tomcat无法解析https情况,如果有这种情况建议更换jdk版本  3,配置git(我这里用的时git)或者svn根... 查看详情

docker+jenkins+gitee+springboot实现自动化部署流程(详细教程)(附下载工具地址)(代码片段)

下一篇:Docker+jenkins+gitee+springboot实现自动化部署流程(详细教程)(附下载工具地址)(2)1、环境准备1-1服务器相关(附下载工具)1-2centos7安装jdk81-3centos7安装maven3.6.31-4centos7安装git1-5安装docker1-6通过docker安装portainer1-7通过doc... 查看详情

jenkins+docker一键自动化部署springboot项目

本文章实现最简单全面的​​Jenkins+docker+springboot​​ 一键自动部署项目,步骤齐全,少走坑路。环境:centos7+git(gitee)简述实现步骤:在docker安装jenkins,配置jenkins基本信息,利用Dockerfile和shell脚本实现项目自动拉取打包并运... 查看详情

基于docker+jenkins实现自动化部署(代码片段)

Jenkins是一个基于java开发的开源 CI&CD软件,用于自动化各种任务,包括构建、测试和部署软件。jenkins官网:https://jenkins.iojenkins下载地址:https://jenkins.io/download/ 请检测是否安装docker,如果没有安装或想提速下载请走这... 查看详情

jenkins自动化部署项目(代码片段)

...站界面)中通过获取代码仓库中最新代码,进行自动化部署,而省去手动打包、上传服务器、部署这一系列步骤,非常 查看详情

jenkins-一篇就能上手jenkins自动化部署(代码片段)

...ok钩子(Jenkins-一篇就能上手Gitee(码云)代码自动化构建)通知Jenkins,然后Jenkins通知目标服务器拉取Git项目代码并执行脚本(拉取、构建、启动等),完毕!环境要求LocalEnv&# 查看详情

jenkins+docker一键自动化部署springboot项目(代码片段)

点击关注公众号,实用技术文章及时了解本文章实现最简单全面的Jenkins+docker+springboot一键自动部署项目,步骤齐全,少走坑路。环境:centos7+git(gitee)简述实现步骤:在docker安装jenkins,配置jenkins基... 查看详情

jenkins+docker一键自动化部署springboot项目(代码片段)

点击关注公众号,实用技术文章及时了解本文章实现最简单全面的Jenkins+docker+springboot一键自动部署项目,步骤齐全,少走坑路。环境:centos7+git(gitee)简述实现步骤:在docker安装jenkins,配置jenkins基... 查看详情

自动化部署之jenkins升级和备份

jenkins升级(1)查看war包所在的目录[[email protected] ~]# rpm -ql jenkins/etc/init.d/jenkins/etc/logrotate.d/jenkins/etc/sysconfig/jenkins/usr/lib/jenkins/usr/lib/jenkins/jenkins.war/usr/ 查看详情

jenkins一键构建自动化测试代码(代码片段)

这两天在使用Jenkins搭建部署一键构建python脚本的框架,看了无数教程(很多教程都是复制粘贴的乱糟糟的教程),踩了无数坑终于搞定了,记录一下这次的搭建过程,以便之后参考。环境介绍:1、本机(自己写代码用的win10)2... 查看详情

jenkins自动化部署(代码片段)

文章目录jenkins自动化部署配置项目添加凭据生成拉程序的代码编写Pipelinescript构建效果测试jenkins自动化部署配置项目添加凭据生成拉程序的代码编写Pipelinescriptpipelineagentanystages //阶段stage('pull')//步骤steps命令gitcredentialsId:&#... 查看详情

自动化部署之jenkins自动触发构建和发布

一、下载gitlabpluginjenkins-->系统管理-->管理插件-->下载并安装gitlabplugin二、配置gitlab认证路径:Jenkins-->Credentials-->System-->Globalcredentials(unrestricted)-->AddCredentials1、Kind选择GitlabAPItoken2、其中 查看详情

持续集成+自动化部署[代码流水线管理及jenkins和gitlab集成]

持续集成+自动化部署[代码流水线管理及Jenkins和gitlab集成]标签(空格分隔):Jenkins一、代码流水线管理  Pipeline名词顾名思义就是流水线的意思,因为公司可能会有很多项目。如果使用jenkins构建完成后,开发构建项目需要一... 查看详情

持续集成与自动化部署-jenkins&sonar代码质量管理平台部署和基础使用(代码片段)

1jenkins安装参考链接1.1安装jenkins[[email protected]~]#yuminstall-yjava-1.8.0[[email protected]~]#cd/etc/yum.repos.d/[[email protected]yum.repos.d]#wgethttp://pkg.jenkins.io/redhat/jenkins.repo 查看详情

jenkins自动化部署项目4--安装和配置jdkmavengit

Jenkins提供了自动安装jdk,maven,git的功能,在【系统设置-全局工具配置】里,但是我自动安装没反应,因此我是先手工安装和配置它们的环境变量然后再在【系统设置-全局工具配置】里配置:1.jdk 2.git 3.maven  查看详情