Jenkins构建项目
Jenkins构建项目一、Jenkins构建的项目类型介绍二、自由风格项目构建1.拉取代码1.1创建项目1.2配置源码管理,从gitlab拉取代码2.编译打包3.部署3.1安装 Deploy to container插件3.2添加Tomcat用户凭证3.3添加构建后操作3.3.1设置web_demo_freestyle项目3.3.2选择Deploy war/ear to a container3.
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构建测试
更多推荐
所有评论(0)