Jenkins构建项目

一、Jenkins构建的项目类型介绍

Jenkins中自动构建项目的类型有很多,常用的有以下三种:

1. 自由风格软件项目(FreeStyle Project)
2. Maven项目(Maven Project)
3. 流水线项目(Pipeline Project)

每种类型的构建其实都可以完成一样的构建过程与结果,只是在操作方式、灵活度等方面有所区别,在实际开发中可以根据自己的需求和习惯来选择。
(PS:个人推荐使用流水线类型,因为灵活度非常高)

二、自由风格项目构建

下面演示创建一个自由风格项目来完成项目的集成过程:

拉取代码->编译->打包->部署

1.拉取代码

1.1创建项目

在这里插入图片描述

1.2配置源码管理,从gitlab拉取代码

在这里插入图片描述

2.编译打包

构建->添加构建步骤->Executor Shell

echo "开始编译和打包"
mvn clean package
echo "编译和打包结束"

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.部署

把项目部署到远程的Tomcat里面

3.1安装 Deploy to container插件

Jenkins本身无法实现远程部署到Tomcat的功能,需要安装Deploy to container插件实现
在这里插入图片描述
安装完成
在这里插入图片描述

3.2添加Tomcat用户凭证

输入tomcat的账号和密码
在这里插入图片描述
添加完成
在这里插入图片描述

3.3添加构建后操作
3.3.1设置web_demo_freestyle项目

在这里插入图片描述

3.3.2选择Deploy war/ear to a container

在这里插入图片描述
输入target/*.war
在这里插入图片描述

3.4点击"Build Now",开始构建过程
3.4.1正在构建

在这里插入图片描述

3.4.2构建成功

在这里插入图片描述

3.4.3访问项目

这里我们看到项目已经在tomcat中运行了,我们点击这个项目
在这里插入图片描述
在这里插入图片描述
或者在 webapps中找到web_demo-1.0-SNAPSHOT

cd /data/software/apache-tomcat-8.5.69/webapps

在这里插入图片描述
访问 http://192.168.0.110:8080/web_demo-1.0-SNAPSHOT/,成功!

3.5演示改动代码后的持续集成
3.5.1修改代码部署

在这里插入图片描述

3.5.2Push到仓库

在这里插入图片描述

3.5.3在Jenkins点击构建

在这里插入图片描述
可以看到已经部署成功
在这里插入图片描述

3.5.4访问项目

部署成功!
在这里插入图片描述

三、Maven项目构建

1.安装Maven Integration插件

在这里插入图片描述
安装完成
在这里插入图片描述

2.构建Maven项目

2.1创建Maven项目

创建web_demo_maven
在这里插入图片描述

2.1配置项目

在这里插入图片描述
在这里插入图片描述

拉取代码和远程部署的过程和自由风格项目一样,只是"构建"部分不同
如果有子项目的目录,则填入:子项目名称/pom.xml

在这里插入图片描述

2.3构建项目

在这里插入图片描述

2.4构建完成

在这里插入图片描述
成功访问
在这里插入图片描述

四、Pipeline流水线项目构建

1.Pipeline简介

1.2概念

Pipeline,简单来说,就是一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或者多个节点
的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。

1.3使用Pipeline有以下好处

来自翻译自官方文档
代码: Pipeline以代码的形式实现,通常被检入源代码控制,使团队能够编辑,审查和迭代其传送流程。
持久: 无论是计划内的还是计划外的服务器重启,Pipeline都是可恢复的。
可停止: Pipeline可接收交互式输入,以确定是否继续执行Pipeline。
多功能: Pipeline支持现实世界中复杂的持续交付要求。它支持fork/join、循环执行,并行执行任务的功能。
可扩展: Pipeline插件支持其DSL的自定义扩展 ,以及与其他插件集成的多个选项。

1.4如何创建 Jenkins Pipeline呢?
  • Pipeline 脚本是由 Groovy 语言实现的,但是我们没必要单独去学习 Groovy
  • Pipeline支持两种语法:Declarative(声明式)和 Scripted Pipeline(脚本式)语法
  • Pipeline也有两种创建方法:可以直接在 Jenkins 的 Web UI 界面中输入脚本;也可以通过创建一 个 Jenkinsfile 脚本文件放入项目源码库中(一般我们都推荐在 Jenkins 中直接从源代码控制(SCM) 中直接载入 Jenkinsfile Pipeline 这种方法)。

2.安装Pipeline插件

:部署时不显示视图则安装Pipeline: Stage View插件
Manage Jenkins->Manage Plugins->可选插件
我这边已经安装了,就不演示安装步骤了
在这里插入图片描述

2.1安装插件后,创建项目的时候多了“流水线”类型

在这里插入图片描述

3.Pipeline语法快速入门

3.1Declarative声明式-Pipeline
3.1.1创建项目

在这里插入图片描述

3.1.2流水线->选择HelloWorld模板

在这里插入图片描述

pipeline {
    agent any

    stages {
        stage('Hello') {
            steps {
                echo 'Hello World'
            }
        }
    }
}

stages: 代表整个流水线的所有执行阶段。通常stages只有1个,里面包含多个stage
stage: 代表流水线中的某个阶段,可能出现n个。一般分为拉取代码,编译构建,部署等阶段
steps: 代表一个阶段内需要执行的逻辑。steps里面是shell脚本,git拉取代码,ssh远程发布等任意内容。

3.1.3编写一个简单声明式Pipeline
pipeline {
    agent any

    stages {
        stage('拉取代码') {
            steps {
                echo '拉取代码'
            }
        }
        stage('编译构建') {
            steps {
                echo '编译构建'
            }
        }
        stage('项目部署') {
            steps {
                echo '项目部署'
            }
        }
        
    }
}

3.1.3.1点击保存

在这里插入图片描述

3.1.4构建

在这里插入图片描述
点击构建,可以看到整个构建过程
在这里插入图片描述

3.2Scripted Pipeline脚本式-Pipeline
3.2.1创建项目

test03_pipeline02
在这里插入图片描述

3.2.2选择Scripted Pipeline

在这里插入图片描述

3.2.3编写一个脚本式Pipeline
  • Node: 节点,一个 Node 就是一个 Jenkins 节点,Master 或者 Agent,是执行 Step 的具体运行环境,后续讲到Jenkins的Master-Slave架构的时候用到。
  • Stage: 阶段,一个 Pipeline 可以划分为若干个 Stage,每个 Stage 代表一组操作,比如:Build、Test、Deploy,Stage 是一个逻辑分组的概念。
  • Step: 步骤,Step 是最基本的操作单元,可以是打印一句话,也可以是构建一个 Docker 镜像,由各类 Jenkins 插件提供,比如命令:sh ‘make’,就相当于我们平时 shell 终端中执行 make 命令一样。
node {
    def mvnHome
        stage('拉取代码') {
              echo '拉取代码'
        }
        stage('编译构建') {
                echo '编译构建'
        }
        stage('项目部署') {
                echo '项目部署'
        }
}

点击应用,保存
在这里插入图片描述

3.2.4构建

在这里插入图片描述
点击构建,可以看到整个构建过程
在这里插入图片描述

4.使用声明式部署项目

还是使用我们已经创建的test03_pipeline01 作为演示

点击流水线语法
在这里插入图片描述

4.1拉取代码
4.1.1使用片段生成器生成脚本

在这里插入图片描述

4.1.2使用的ssh免密凭证

在这里插入图片描述

4.1.3点击生成流水线脚本

在这里插入图片描述

4.1.4把生成的脚本放到第一个地方

在这里插入图片描述
点击保存,我们可以构建试一下是否可用
在这里插入图片描述
配置拉取代码成功!

4.1.5 拉取成功
4.2编译打包

进入项目配置,我们还是使用maven的脚本进行编译,

4.2.1点击流水线语法

在这里插入图片描述

4.2.2使用片段生成器生成脚本

选择sh: Shell Script
在这里插入图片描述
写入maven的打包命令

mvn clean package

在这里插入图片描述

4.2.3把生成的脚本放到第二个地方

在这里插入图片描述
点击保存,我们可以构建试一下是否可用
在这里插入图片描述
这里看到正在打包
在这里插入图片描述

4.2.4编译完成

在这里插入图片描述

4.3部署
4.3.1代码生成器

在这里插入图片描述

4.3.2生成脚本

在这里插入图片描述

4.3.3把生成的脚本放到第三个地方

保存
在这里插入图片描述

4.3.4构建项目-部署!

在这里插入图片描述

4.3.5部署成功

在这里插入图片描述
在这里插入图片描述

5.Pipeline Script from SCM控制脚本
刚才我们都是直接在Jenkins的UI界面编写Pipeline代码,这样不方便脚本维护,建议把Pipeline脚本放在项目中(一起进行版本控制)
5.1使用Jenkinsfile文件

在项目根目录建立Jenkinsfile文件,把内容复制到该文件中
在这里插入图片描述
把文件上传到服务器
在这里插入图片描述

5.2切换流水线为Pipeline script from SCM

在这里插入图片描述

5.3选择git

这里我们可以选择多个,需要用svn,安装svn插件即可
在这里插入图片描述

5.4填写信息

在这里插入图片描述
因为是存放在根目录的,所以 这个地方填写文件名即可
在这里插入图片描述

5.5构建测试

在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐