Jenkins 基础篇 - 任务创建
前面了解了 Jenkins 上各种任务的区别后,我们就来实践应用下,先创建一个【文件夹】类型的任务,将我们目前的一些基础的演示任务【移动】到文件夹里面去,这样可以先做个简单的分类。
新建一个【文件夹】类型的任务,名称为 Jenkins-Basic:

可以看到【文件夹】类型的任务可配置的内容很少,不做特殊设置,默认即可:

然后我们将前面的演示项目移动到这个文件夹下面:


接下来我们将做个实战任务,演示任务的构建、打包、上传、部署等操作,以及详细解析任务的各个配置阶段。
新建一个【构建一个自由风格的软件项目】类型的任务,名称为 demo-todo-list:

配置如下:

我构建了多次才成功,主要是下载构建工具 Gradle 超时,在第九次构建后才成功,构建后看看日志如下:


我们现在调整下配置,在【构建后操作】下面添加一项【Send build artifacts over SSH】,这样做的目的是将我们构建出来的可执行 jar 包发送到我们的服务器,然后在用命令行启动我们的 Spring boot 应用:

简单说下这里的配置:在 SSH Server Name 这里展开选择我们之前配置好的一台服务器;Source files 定位到我们 jar 包的位置;Remove prefix 和 Remote directory 是可选的,我这里为了目录简洁,在 Remove prefix 这里填入 build/libs/,这表示会将 Source files 中 build/libs/demo-todo-list*.jar 的前面 build/libs/ 移除掉;Remote directory 我这里填入的是 service-deploy,这表示将文件发送到远程服务器用户目录下的 service-deploy 文件夹下面,需要注意的是要确保目录 service-deploy 存在。然后在 Exec command 处填入下面的指令:
# 进入到指定的目录
cd service-deploy
# 检查服务是否在运行,如果在运行就将其停掉
ps -ef | grep demo-todo-list | grep -v grep | awk '{print $2}' | xargs kill -15 | echo "todo list 服务不存在"
# 将旧的 jar 删除
rm -rf demo-todo-list.jar
# 将新的 jar 重命名下
mv demo-todo-list*.jar demo-todo-list.jar
# 启动我们的服务
nohup java -jar demo-todo-list.jar > /dev/null 2>nohup.log &
然后去到我们的服务器上看看相关情况,看看目录结构以及服务的启动日志:
到这里,一个实战的 Jenkins 任务就完成了。接下来就详细说说任务配置中的各个设置项的意义。
在 Jenkins 任务的配置里面主要分如下几个大类可以设置:【General】、【源码管理】、【构建触发器】、【构建环境】、【构建】以及【构建后操作】。
【General】主要是对任务进行一些前期的设置,里面一个重要的设置是【参数化构建过程】,例如我们可以通过参数来控制要构建哪一个分支,或者构建时会用到的参数也是通过这里配置,参数配置可以支持多种类型的参数,常见的有字符参数、密码参数、布尔参数、选项参数、凭据参数和文件参数等。【源码管理】很容易理解,我们的项目代码都会通过代码仓库进行管理,目前 Jenkins 支持 Git、Mercurial 和 Subversion 等主流的源码管理平台。【构建触发器】可以设置为定时构建、轮询 SCM(定时检查源码仓库有新的代码才构建)、触发远程构建(例如通过URL请求触发)、其他工程构建后触发等。【构建环境】主要是对构建进行一些环境准备,例如有时候构建项目时需要确保没有其他无关文件的影响,就可以设置构建前删除工作空间,如果需要证书密码文件,可以配置添加需要的文件。【构建】就是真正的项目打包操作的,一般来讲主要是将项目构建打包成 jar 包、war 包、可执行文件、安装包、或者压缩文件,举个例子如果是 Maven 项目就执行 maven 的打包命令,Gradle 项目就执行 gradle 的打包命令。【构建后操作】主要是将打包出来的文件发送到某个地方以及一些通知相关的操作,例如我们打包的 Java 项目最终要部署到某台服务器,就通过 SSH 传送文件完成,也可以将构建出来的文件进行存档,还可以将文件上传到OSS 等云服务对象存储里面。如果是构建失败了我们需要立即知道,还可以配置邮件或者钉钉来立即通知我们。

Jenkins 基础篇 - 任务创建的更多相关文章
- Jenkins: 基础篇(环境配置)
自动化领域比较有影响力的开源框架jenkins,确实比较强大,易用.很多公司将其用来做持续即成CI(continuous integration).为了拓展和强化自己的软件设计生态系统,也将很久前使用 ...
- g4e基础篇#5 创建分支和保存代码
章节目录 前言 1. 基础篇: 为什么要使用版本控制系统 Git 分布式版本控制系统的优势 Git 安装和设置 了解Git存储库(Repo) 起步 1 – 创建分支和保存代码 起步 2 – 了解Git ...
- Jenkins 基础篇 - 安装部署
Jenkins 安装 Jenkins 支持主流的 Linux 发行版系统,同时还支持 macOS.Windows.和 Docker 运行. 具体系统的 Jenkins 安装包可以去官网下载 https ...
- Jenkins 基础篇 - 插件安装
这一小节主要介绍 Jenkins 插件的安装,登录到 Jenkins 后,依次进入到[系统管理]→ [插件管理]→ [可选插件],在这里可以看到所有的 Jenkins 插件,如下图: 我们在最开始安装 ...
- Jenkins 基础篇 - 小试牛刀
现在我们来创建一个简单的 Jenkins 任务,这个任务输出 Java 版本信息和系统信息,通过这个任务我们先了解创建 Jenkins 任务的流程,以及了解一些对任务的基础设置,接下来就是演示任务的整 ...
- Jenkins 基础篇 - 环境准备
前期准备 为了开发这套课程,我专门购买了一台二手戴尔服务器 Dell R720,同时把废弃多年的笔记本电脑也利用了起来.当然如果自己没有多余的电脑,也可以在自己电脑上安装 Vmware Worksta ...
- Jenkins 基础篇 - 任务分类
从前面的小节中我们看到在创建 Jenkins 任务的时候有好几种类型,如果你专门安装了 Maven 相关插件,可能还会有一个[构建一个 maven 项目]的任务类型,那这些任务类型究竟有何区别,以及我 ...
- Jenkins 基础篇 - Server 配置
我们使用 Jenkins 部署服务之前要先配置我们的目标服务器,配置目标服务器也很简单,就是将服务器的 IP.账号密码或者账号密钥配置在 Jenkins中.在演示服务器配置之前我们要先知道 Linux ...
- Jenkins 基础篇 - 基础设置
站点设置 刚搭建好 Jenkins 环境,你还需要做一些简单设置,让我们的 Jenkins 看起来是这么一回事,特别是你要用于生产环境的时候.首先就是域名配置,如果你为 Jenkins 服务分配了一个 ...
随机推荐
- Spring(11) - Introductions进行类扩展方法
Introductions(引用),在 Aspect 中称为类型间的声明,使切面能够声明被通知的对象(拦截的对象)实现给定的接口,并提供该接口的实现. 简单点说可以将一个类的实现方法复制到未实现的类中 ...
- 使用Font Awesome替换EasyUI的图标
用过EasyUI的朋友都知道,大部分组件都有一个iconCls属性,用于显示一个图标.但是EasyUI自带图标数量少.不美观,于是想到了使用Font Awesome来更换和拓展这些图标. 先看看Eas ...
- Appium 简介与自动化测试环境搭建
1. Appium 简介 2. Appium 自动化测试环境搭建 1. Appium 简介 Appium 是一个开源测试自动化框架,可用于原生,混合和移动 Web 应用程序测试. 它使用 WebDri ...
- JavaWeb请求与响应 Cookie&Session
1.请求与响应 &Cookie&Session 1.1.请求与响应 HTTP协议 概念:英文全称:HyperText Transfer Protocol 中文全称:超文本传输协议 ...
- lumen Rest API 起步
lumen Rest API 起步 修改项目文件 .env DB_DATABASE=<数据库名> DB_USERNAME=<数据库用户名> DB_PASSWORD=<数据 ...
- JSONP跨域资源共享的安全问题
目录 关于 JSONP 一.JSON 劫持 二.Callback 可定义导致的安全问题 三.其他文件格式( Content-Type )与 JSON 四.防御 摘自:http://blog.known ...
- 【python】Leetcode每日一题-删除排序链表中的重复元素2
[python]Leetcode每日一题-删除排序链表中的重复元素2 [题目描述] 存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表 ...
- 【maven】理论知识
Maven是跨平台的项目管理工具,主要服务于Java平台的项目构建.依赖管理. 项目构建 项目构建过程包括[清理项目]→[编译项目]→[测试项目]→[生成测试报告]→[打包项目]→[部署项目]这几个步 ...
- Java中实现某方法和重写某方法的区别
实现(implements) 实现一个方法,在实现某个接口,或者是继承某个抽象类,在接口和在抽象类中定义的方法,本身是没有实现的,也就是没有方法体,你在当前类中就需要去实现这个方法. 重写(overl ...
- docker学习之使用 DockerFile 构建镜像并搭建 swarm+compose 集群
题目要求 (1)将springboot应用程序打成jar包:Hot.jar (2)利用dockerfile将Hot.jar构建成镜像 (3)构建 Swarm 集群 (4)在 Swarm 集群中使用 c ...