前面了解了 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 基础篇 - 任务创建的更多相关文章

  1. Jenkins: 基础篇(环境配置)

    自动化领域比较有影响力的开源框架jenkins,确实比较强大,易用.很多公司将其用来做持续即成CI(continuous integration).为了拓展和强化自己的软件设计生态系统,也将很久前使用 ...

  2. g4e基础篇#5 创建分支和保存代码

    章节目录 前言 1. 基础篇: 为什么要使用版本控制系统 Git 分布式版本控制系统的优势 Git 安装和设置 了解Git存储库(Repo) 起步 1 – 创建分支和保存代码 起步 2 – 了解Git ...

  3. Jenkins 基础篇 - 安装部署

    Jenkins 安装 Jenkins 支持主流的 Linux 发行版系统,同时还支持 macOS.Windows.和 Docker 运行. 具体系统的 Jenkins 安装包可以去官网下载 https ...

  4. Jenkins 基础篇 - 插件安装

    这一小节主要介绍 Jenkins 插件的安装,登录到 Jenkins 后,依次进入到[系统管理]→ [插件管理]→ [可选插件],在这里可以看到所有的 Jenkins 插件,如下图: 我们在最开始安装 ...

  5. Jenkins 基础篇 - 小试牛刀

    现在我们来创建一个简单的 Jenkins 任务,这个任务输出 Java 版本信息和系统信息,通过这个任务我们先了解创建 Jenkins 任务的流程,以及了解一些对任务的基础设置,接下来就是演示任务的整 ...

  6. Jenkins 基础篇 - 环境准备

    前期准备 为了开发这套课程,我专门购买了一台二手戴尔服务器 Dell R720,同时把废弃多年的笔记本电脑也利用了起来.当然如果自己没有多余的电脑,也可以在自己电脑上安装 Vmware Worksta ...

  7. Jenkins 基础篇 - 任务分类

    从前面的小节中我们看到在创建 Jenkins 任务的时候有好几种类型,如果你专门安装了 Maven 相关插件,可能还会有一个[构建一个 maven 项目]的任务类型,那这些任务类型究竟有何区别,以及我 ...

  8. Jenkins 基础篇 - Server 配置

    我们使用 Jenkins 部署服务之前要先配置我们的目标服务器,配置目标服务器也很简单,就是将服务器的 IP.账号密码或者账号密钥配置在 Jenkins中.在演示服务器配置之前我们要先知道 Linux ...

  9. Jenkins 基础篇 - 基础设置

    站点设置 刚搭建好 Jenkins 环境,你还需要做一些简单设置,让我们的 Jenkins 看起来是这么一回事,特别是你要用于生产环境的时候.首先就是域名配置,如果你为 Jenkins 服务分配了一个 ...

随机推荐

  1. GoTTY-K8S-Docker 终端

    安装GoTTY 下载yum源 curl -s https://mirror.go-repo.io/centos/go-repo.repo | tee /etc/yum.repos.d/go-repo. ...

  2. 如何在linux上手动连接到互联网

    作者 @飞洲人飞舟魂转载请注明出处. 一直以来对linux的网络管理不大明白,今天研究了一下网络的手动配置,现在记录一下.我使用Ubuntu20.04.1来进行演示. 介绍 首先我们先明确一些概念性的 ...

  3. 基于vite2+electron12后台管理模板|Electron后台框架系统

    前一溜时间有给大家分享一个 electron+vite跨端短视频 项目.这次分享的是vite2.x和electron实现跨平台后台框架,支持国际化多语言配置.导航菜单+树形菜单两种路由菜单模式.展开/ ...

  4. Netty 框架学习 —— 第一个 Netty 应用

    概述 在本文,我们将编写一个基于 Netty 实现的客户端和服务端应用程序,相信通过学习该示例,一定能更全面的理解 Netty API 该图展示的是多个客户端同时连接到一台服务器.客户端建立一个连接后 ...

  5. *arg和**kwarg的区别

    一.*args的使用方法 *args 用来将参数打包成tuple给函数体调用 例子一: def function(*args): print(args, type(args)) function(1) ...

  6. hdu1722 切蛋糕

    题意:CakeTime Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  7. UVA10047独轮车

    题意:      给你一个独轮车,轮子上有五个扇形,每过一个格子就转过一个扇形,刚开始的时候方向是向北的,绿色上行向下,每一次可以有三种操作,到下一个格子,左转90度,右转90度,每一次操作都花费时间 ...

  8. Cookie、Session和Token认证

    目录 Cookie Session认证机制 Session的一些安全配置 Token认证机制 Token预防CSRF Session认证和Token认证的区别 前言:HTTP是一种无状态的协议,为了分 ...

  9. 在AWS Glue中使用Apache Hudi

    1. Glue与Hudi简介 AWS Glue AWS Glue是Amazon Web Services(AWS)云平台推出的一款无服务器(Serverless)的大数据分析服务.对于不了解该产品的读 ...

  10. 【maven和jdk】报错:系统找不到指定的文件

    创建一个maven项目出错 问题描述 在idea.log出现如下错误(系统找不到指定的文件,但是不知道指定文件是什么) com.intellij.execution.process.ProcessNo ...