CICD持续集成和Jenkins的安装配置【Pipeline、项目构建】(五)

使用Jenkins构建项目

Jenkins中自动构建项目的类型有很多,常见的就下面三种

自由风格软件项目(FreeStyle Projetc)

Maven项目(Maven Project)

流水线项目(Pipeline Project)

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

目录

一、自由风格项目构建

1.拉取代码

2.编译打包

①添加配置

②重新构建

3.部署

①安装Deploy to container插件

②添加Tomcat用户凭证

③添加构建后操作

二、Maven项目构建

1.安装Maven Integration插件

2.创建Maven项目

①创建Maven项目

②配置项目

三、Pipeline流水线项目构建

1.Pipeline的好处

2.创建Pipeline的方法

3.使用Pipeline来创建项目

①安装Pipeline插件

②创建项目

4.Declarative声明式-Pipeline

5.Scripted Pipeline脚本式-Pipeline

6.声明式代码生成

7.以声明式构建发布项目

①编写拉取代码操作

②编写构建操作

③编写发布操作

④保存构建发布

8.以脚本式构建项目

四、PipelineSCM方式

1.建立JenkinsFile文件

2.上传Jenkins文件

3.重新配置Pipeline项目


一、自由风格项目构建

1.拉取代码

①创建项目

②配置源代码管理,这边使用的方式是从Gitlab拉取代码,配置完成后,点击应用并保存。

2.编译打包

构建->添加构建步骤->Executor Shell,设置完成后,点击应用保存

①添加配置

直接在当前项目上配置即可

②重新构建

需要服务器有Maven,Maven安装看上一篇文章

echo “开始编译打包”

mvn clean package

echo “结束编译打包”

可以看到构建结束,服务器也有构建好的包

3.部署

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

①安装Deploy to container插件

Jenkins本身无法是无法实现远程部署到Tomcat的功能,需要安装Deploy to container插件来实现远程部署

返回项目配置

我这边的Tomcat是8.5的版本所以选择8.x,根据自己的Tomcat的版本进行选择

②添加Tomcat用户凭证

Tomcat如何添加管理用户在之前的文章里

③添加构建后操作

保存之后重新构建

查看构建过程

已经实现自动发布,在Tomcat上访问页面查看

修改项目后还是继续提交,然后推到Gitlab上,重新在构建一次,刷新Tomcat就可以看到更新的项目

二、Maven项目构建

1.安装Maven Integration插件

步骤还是一样,找到Maven Integration插件进行安装

2.创建Maven项目

①创建Maven项目

②配置项目

拉取代码和远程部署的过程和自由风格项目一样,只是“构建”部分不同

Git配置都是一样的

发布步骤跟自由风格项目一样,使用Deploy to container插件即可

弄完之后保存即可,然后构建项目进行测试

这边显示构建发布成功,查看Tomcat网页

Maven项目构建发布完成

三、Pipeline流水线项目构建

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

1.Pipeline的好处

①代码:Pipeline以代码的形式实现,通常被检入源代码控制,使团队能够编辑,审查和迭代其传送流程。

②持久:无论是计划内的还是计划外的服务器重启,Pipeline都是可恢复的。

③可停止:Pipeline可接收交互式输入,以确定是否继续执行Pipeline。

④多功能:Pipeline支持现实世界中复杂的持续交付要求。它支持fork/join、循环执行,并行执行任务的功能。  

⑤可扩展:Pipeline插件支持其DSL的自定义扩展 ,以及与其他插件集成的多个选项。

2.创建Pipeline的方法

Pipeline脚本是由Groovy语言实现的,Groovy Pipeline 支持两种语法:Declarative(声明式)和Scripted Pipeline(脚本式)语法

Pipeline 也有两种创建方法:可以直接在 Jenkins 的 Web UI 界面中输入脚本;也可以通过创建一个 Jenkinsfile 脚本文件放入项目源码库中(一般我们都推荐在 Jenkins 中直接从源代码控制(SCM) 中直接载入 Jenkinsfile Pipeline 这种方法)

3.使用Pipeline来创建项目

①安装Pipeline插件

安装插件的方法一样

②创建项目

可以发现在创建项目时,多出一个Pipeline,选择,就可创建Pipeline项目

4.Declarative声明式-Pipeline

创建项目

流水线->选择HelloWorld模板

点完之后就可以看到模板

stages:代表整个流水线的所有执行阶段。通常stages只有1个,里面包含多个stage

stage:代表流水线中的某个阶段,可能出现n个。一般分为拉取代码,编译构建,部署等阶段。

steps:代表一个阶段内需要执行的逻辑。steps里面是shell脚本,git拉取代码,ssh远程发布等任意内容。

写一个简单的声明式Pipeline:

pipeline {

    agent any

    stages {

        stage('开始') {

            steps {

                echo '开始'

            }

        }

        stage('等待') {

            steps {

                echo '等待'

            }

        }

        stage('结束') {

            steps {

                echo '结束'

            }

        }

    }

}

构建测试,可以看到构建过程视图

5.Scripted Pipeline脚本式-Pipeline

返回配置,清空代码,选择“Scripted 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 命令一样。

清空代码,写一个简单的脚本式Pipeline

node{

    def mvnhome

    stage('开始'){

        echo '开始'

    }

    stage('等待'){

        echo '等待'

    }

    stage('结束'){

        echo '结束'

    }

}

保存之后再次构建,可以看到过程

6.声明式代码生成

在配置里,有一个流水线语法,点进去就可以看到Pipeline使用的语法

可以选择自己想要生成的代码

以从Gitlab拉取代码操作为例,生成Pipeline代码

直接复制代码到脚本里即可,构建时会直接使用

7.以声明式构建发布项目

清空代码,选择Hello World

根据流水线语法编写脚本

①编写拉取代码操作

②编写构建操作

③编写发布操作

选择deploy:Deploy war/ear to a container

④保存构建发布

可以看到构建完成,还可以看到网页

8.以脚本式构建项目

代码生成跟上面声明式步骤一样

清空代码,使用脚本式

保存构建

构建完成,一样也可以看到网页显示

网页上显示的东西,是自己写上去的并不是自动生成,请注意

四、PipelineSCM方式

刚才我们都是直接在Jenkins的UI界面编写Pipeline代码,这样不方便脚本维护,脚本容易丢失,建议把Pipeline脚本放   在项目中(一起进行版本控制)

1.建立JenkinsFile文件

在项目根目录建立Jenkinsfile文件,把内容复制到该文件中

2.上传Jenkins文件

可以看到脚本文件已经上传到Gitlab上

3.重新配置Pipeline项目

在项目配置里进行修改

保存,重新构建

可以看到已经构建成功

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值