本篇文章将向您介绍Jenkins的基本功能以及如何安装和使用Jenkins 文章很细节,建议看到最后
1. 先对Jenkins 做一个简单的了解
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。 Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。
1.1 CI/CD解释
CI(Continuous integration,中文意思是持续集成)是一种软件开发时间。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。
CD(Continuous Delivery, 中文意思持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境。
1.2 为啥要用Jenkins 它解决了哪些痛点?
优点:
开源免费:Jenkins是开源的,这意味着用户可以自由地使用、修改和分发它,而不需要支付任何许可费用。
高度可配置:Jenkins非常灵活,可以通过安装各种插件来扩展其功能,以满足特定项目的需求。有超过一千种插件可用,涵盖从构建到部署的各个方面。
跨平台支持:Jenkins可以在多种操作系统上运行,包括Windows、Linux和macOS等。
社区支持强大:由于Jenkins拥有庞大的用户群,因此有大量的文档、教程以及活跃的社区支持,这对于新用户来说是一个巨大的优势。
易于集成:Jenkins很容易与现有的系统和服务进行集成,比如版本控制系统(Git, SVN)、代码质量工具(SonarQube)、通知服务(Slack, Email)等。
自动化能力:通过设置构建触发器,Jenkins可以根据需要自动执行构建任务,例如当代码库发生变化时。
分布式构建支持:对于大型项目,Jenkins允许将工作负载分散到多台机器上,从而加速构建过程。
用户界面友好:虽然主要是基于Web的管理界面,但Jenkins提供了一个直观易用的UI,让非技术背景的人员也能轻松上手。
解决了哪些痛点:
手动错误减少:通过自动化测试和部署流程,减少了人为因素导致的错误。
提高效率:自动化构建、测试及部署加快了产品迭代速度,使得团队能够更快地发布更新。
增强协作:集成的特性促进了开发者之间的沟通与合作,确保每个人都了解项目的最新状态。
持续反馈:快速得到关于代码变更影响的信息,有助于及时发现并解决问题。
资源优化:利用分布式的架构有效利用计算资源,避免单一服务器成为瓶颈。
标准化流程:定义明确的工作流帮助组织实现一致性和标准化,降低了不同团队或成员之间操作方式不统一的风险。
2. 如何使用 Jenkins
2.1 安装要求
按照官方的说法,您需要:
机器要求:
256 MB 内存,建议大于 512 MB
10 GB 的硬盘空间(用于 Jenkins 和 Docker 镜像)
需要安装以下软件:
Java 8或者 Java11 ( 建议最好装一个 java11 因为高版本的 jenkins 必须得 java11)
Docker (本次演示没有使用docker,仅用到了maven和jdk)
2.2 下载并运行 Jenkins
https://get.jenkins.io/war-stable/
由于我本地安装的是 java11 所以Jenkins选择2.414.3这个版本
如果你也是 java11 直接点击这里
我们可以看到Jenkins的包是一个 war 包,它有两种启动方式:一种是将 war 包方到 tomcat 中启动,一种是直接启动,下面我演示直接启动的方式
启动:
java -jar jenkins.war --httpPort=8080.
看到如下日志代表启动成功
访问:http://localhost:8080
看上图让我们输入密码,它说密码已经保存到服务器上 地址已经给你标到了下面,我们去这个地址下的initialAdminPassword文件复制密码(或者在日志输出也会打印)
输入密码后: (这里选哪个都可以 我选择安装推荐的插件)
注意:如果按照插件过程中出现这个错误:jenkins安装报错:No such plugin: cloudbees-folder 请看这个文章(作者写的很详细):https://blog.csdn.net/weixin_46627652/article/details/135432470
然后创建用户并且完成
3. 如何使用jenkins部署java项目
3.1 安装插件
部署项目的三个必要的插件
Maven Integration:Maven 构建工具
Publish Over SSH:整个工具,将来把 Jenkins 打包好的 jar 上传到应用服务器上。
Gitee:协助使用 Gitee 仓库
从这里搜索安装
3.2 配置 jdk 和 maven
在系统管理中找到全局工具配置
maven:
jdk:
3.3 Publish Over SSH凭证配置和Gitee配置
进入系统管理 —> 系统配置
SSH:
往下拉找到 Publish Over SSH,然后点击新增,开始配置,Hostname 位置填写你服务器的域名或者 IP
这里有个注意点:我使用的是本地电脑(mac),通过 ssh 连接的话需要打开一下电脑的远程登录
点击下方的测试,success 代码可以成功连接
Gitee:
我们这里以 gitee 的远程仓库为示例,配置 gitee 的凭证
准备工作:从 https://gitee.com/profile/personal_access_tokens 获取私人令牌(没有则创建)
第一步填写地址:
第二步添加令牌:
类型选 Gitee Api 令牌
填写从 gitee 上获取到的令牌
添加成功后 点击测试连接
3.4 新建任务,配置任务
点击左侧菜单-->新建任务
我们先创建一个简单的 maven 项目
然后选择源码管理 --> 然后选择 git
填写仓库 url 和用户名密码
配置构建命令:
注意⚠️:这里我将maven的构建命令改为了 :clean package -Dmaven.test.skip=true 避免执行测试类
配置Post Steps: 选择第一个 仅在成功时运行
配置ssh去执行拷贝和启动命令
配置要构建的文件路径和启动命令等:
这里容易出错,解释一下上面的字段:
Name:选择要上传的服务器,也就是我们在 3.3 Publish Over SSH中的配置
Source files:要上传的文件,也就是我们jar包在项目中的位置,一般都是target/ 下
Remove prefix:要排除的前缀
Remote directory:要拷贝的目录位置,是基于我们在3.3 Publish Over SSH中配置的路径下
Exec command:执行的启动jar包的命令
开启操作日志:
至此,整个配置工作就完成啦 ~
记得点击保存哦~
大功告成,看成效
3.5 构建项目
回到桌面,找到我们创建的任务点进去
点击立即构建 点击查看日志
可以看到构建成功
下面是ssh去启动项目的日志 也可以看到springboot的启动日志
然后查看我们的目录,可以看见jar包也被拷贝到了对应的目录下
One more thing
如果你穿漂亮的衣服,人们会认为你在炫耀。
如果你穿简单的衣服,人们会认为你很穷。
如果你直言不讳,你会很粗鲁。
如果你保持沉默,那么你就是懦夫。
如果你成功了,那么你就是傲慢的。
如果你在挣扎,那么你就是懒惰的。
无论你在生活中做什么,人们总是有话要说。
所以,忽略人们和他们的意见。
因为只要上帝对你满意,谁在乎别人怎么想。