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 服务分配了一个 ...
随机推荐
- OO Unit4总结 & 结课总结
OO Unit4总结 & 结课总结 OO课Unit4 UML解析应用技术回顾 BUAA.1823.邓新宇 2020/6/19 总结本单元三次作业的架构设计 本单元的架构设计主要是两方面. 一方 ...
- 5403. Find the Kth Smallest Sum of a Matrix With Sorted Rows
You are given an m * n matrix, mat, and an integer k, which has its rows sorted in non-decreasing or ...
- 修改Android手机内核,绕过反调试
本文博客链接:http://blog.csdn.net/qq1084283172/article/details/57086486 0x1.手机设备环境 Model number: Nexus 5 O ...
- Windows PE第九章 线程局部存储
线程局部存储(TLS) 这个东西并不陌生了,之前写过了一个关于这个的应用,利用静态TLS姿势实现代码段静态加密免杀或者所谓的加壳思路.地址在这:http://blog.csdn.net/u013761 ...
- 简单写个logictic回归
最近做华为软件精英挑战赛热身赛,给出的demo是使用logistic做的金融风控,比赛要求很严格,如果使用Python 进行训练那么不能使用任何第三方机器学习库,只能使用Python和原生numpy1 ...
- spring-boot-maven-plugin not found的解决方案
spring-boot-maven-plugin not found 在maven测试的生命周期都没有错,但是就是爆红 参考了很多的链接,没有成功解决,最后得到真正有帮助的方法,添加springboo ...
- Nacos使用 MySQL 8.0 提示Public Key Retrieval is not allowed
原因如下(参考官网给出的连接选项): 如果用户使用了 sha256_password 认证,密码在传输过程中必须使用 TLS 协议保护,但是如果 RSA 公钥不可用,可以使用服务器提供的公钥:可以在连 ...
- python-内置函数-文件操作
文件操作 用的最多的就是r+,w+和a+都有局限性 w+是先清空,然后再写,之后再读 a+是无论如何调整指针位置,写时都在文件最后追加 而r+可以通过调整指针位置来确定写入的位置 文件操作之with处 ...
- IntelliJ IDEA 老司机,还没用过 Stream Trace 功能?
前言 自从 Java 8 开始,作为程序员的我们都离不开 Stream 相关功能的使用,书写起来那叫一个流畅(这个 feel--).但总是有一些时候,我们对 stream 的操作所要的结果和预期不符, ...
- 2021.02.21cf补题
B. National Project 题意:总长度为n的公路进行维修,天气是有规律性的,连续g天的好天气,连续b天的坏天气,必须在好天气进行维护,问至少维护n的一半,那么至少需要多少天 思路:必须是 ...