Jenkins实现CI/CD自动构建和发布步骤

最近更新:2022.11.8

使用Jenkins实现CI/CD.这个虽然是非常简单和基础的功能,但是我用了很长时间才摸着石头过了这趟水.

本文使用的技术为:

Jenkins+Git+Maven+Tomcat

简单来说:

通过Jenkins手动拉取git仓库代码,将已经maven编译好的war包通过刷scp发送(发布)到远程Tomcat服务器上。这里我用的方式是手动的CI/CD,其实我们还可以通过配置gitlab webhook(当gitlab检测到代码变更事件后,触发webhook,发送http请求到配置的webhook的url)实现开发提交代码后,自动触发CI/CD。配置webhook步骤

具体步骤:

假设Jenkins已安装,远程Tomcat也已安装.(具体安装步骤老生常谈了,不再废话,不知道的可以自行搜索我的博客,都有记录的)

我这里是Jenkins/Git/Maven在同一台服务器上,所以下面的内容,需要根据你的具体情况做微调

1.Jenkins服务器安装Git和Maven

git安装步骤: 直接yum install git -y

Maven安装步骤:https://www.cnblogs.com/biaopei/p/11104130.html

获取git和maven的命令所在位置

[root@130-node1 SayHi]# which git
/usr/bin/git
[root@130-node1 SayHi]# which mvn
/usr/local/maven/bin/mvn
[root@130-node1 SayHi]# 

2.Jenkins配置git和maven

配置git

 

 配置maven

3.Git服务器新建Maven Web项目

我这里是在Jenkins服务器上

#生成Maven web项目库
mvn archetype:generate -DgroupId=com.companyname.automobile -DartifactId=SayHi -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false -DarchetypeCatalog=internal   #SayHi是项目名,可自定义,报错的话可以多执行几次 cd SayHi/
#打包生成jar包 mvn clean package
git init  #我们需要将这个项目初始化为代码库
git add ./*
git commit -m "add first code"

我们来看一下Maven Web项目结构

[root@130-node1 SayHi]# tree
.
|-- pom.xml
|-- src
|   `-- main
|       |-- resources
|       `-- webapp
|           |-- index.jsp
|           `-- WEB-INF
|               `-- web.xml
`-- target
    |-- classes
    |-- maven-archiver
    |   `-- pom.properties
    |-- SayHi
    |   |-- index.jsp
    |   |-- META-INF
    |   `-- WEB-INF
    |       |-- classes
    |       `-- web.xml
    `-- SayHi.war

12 directories, 7 files
[root@130-node1 SayHi]# cat src/main/webapp/index.jsp 
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
[root@130-node1 SayHi]# 

我们的Web项目页面内容就是index.jsp.如果CI/CD成功的话,我们可以在远程Tomcat服务器上访问到这个页面

4.Jenkins新增项目任务

选择自由项目即可.

在代码管理这里.我没有使用凭证,直接通过ssh-copy-id免密登陆git服务器实现的.通过帐号密码的话,一直会报错,搞不懂....

 

 

 配置自动发送到远程tomcat的webapp下

 5.开始构建该项目

进入该项目,点击左侧的Build Now

这是我的第三次构建的日志.可以看到,构建成功的提示

 6.确认是否发布到Tomcat服务器

以下是我的Tomcat目录,可以看到有一个SayHi.war并且自动进行解压

[root@129-node2 webapps]# pwd
/root/apache-tomcat-9.0.34/webapps
[root@129-node2 webapps]# ls
docs  examples  host-manager  manager  ROOT  SayHi  SayHi.war
[root@129-node2 webapps]# 

尝试访问远程Tomcat服务器服务

搞定!!!

Jenkins上(即Git仓库)的Maven Web项目成功编译测试并发布到远程Tomcat服务器上

posted on 2020-04-11 00:22  标配的小号  阅读(4837)  评论(0编辑  收藏  举报

导航