如何通过Jenkins进行自动化构建项目

1. 介绍

        Jenkins 是一个开源的持续集成(CI)和持续交付(CD)工具,旨在自动化软件开发过程中的构建、测试和部署。它是一个基于 Java 编写的自动化服务器,在软件开发生命周期的各个阶段提供自动化支持。

官方文档:Jenkins 用户手册

Jenkins 是一个流行的持续集成和持续交付工具,它具有许多优势,使其成为开发团队的首选工具之一。以下是 Jenkins 的一些优势:

  • 开源和免费: Jenkins 是开源软件,免费提供给用户使用。这使得任何人都可以自由地使用和定制 Jenkins,而不需要支付额外的费用。

  • 可扩展性: Jenkins 提供了丰富的插件生态系统,用户可以根据自己的需求选择和安装不同的插件。这使得 Jenkins 可以灵活地扩展和定制,满足各种不同项目的需求。

  • 易于配置和使用: Jenkins 提供了直观的用户界面和简单的配置选项,使得用户可以轻松地创建和配置自动化构建任务。无论是新手还是有经验的用户都可以快速上手,并且能够灵活地配置各种不同的构建环境。

  • 持续集成: Jenkins 提供了持续集成功能,可以在代码提交后自动触发构建和测试,帮助开发团队及时发现和修复问题,保证代码的稳定性和质量。持续集成还可以加快软件交付的速度,提高开发效率。

  • 持续交付: Jenkins 支持持续交付功能,可以自动化执行构建、测试、部署等步骤,从而实现快速、可靠地交付软件。持续交付可以减少人工操作和人为错误,提高软件交付的质量和可靠性。

  • 大型社区支持: Jenkins 拥有庞大的用户社区和活跃的开发者社区,用户可以在社区中获取到丰富的教程、文档和解决方案。社区也提供了大量的插件和扩展,为用户提供了更多的选择和可能性。

  • 跨平台支持: Jenkins 支持在各种不同的操作系统和平台上运行,包括 Windows、Linux、Mac 等。无论是个人开发者还是企业团队,都可以在自己喜欢的平台上使用 Jenkins 进行自动化构建和持续集成。

2. Jenkins 安装

我这里以docker安装方式进行演示,其他方式安装请按照官网文档进行操作。

下载地址:Jenkins download and deployment

docker方式安装
#拉取镜像
docker pull jenkins/jenkins#运行镜像
docker run -d -p 8080:8080 -p 50000:50000 jenkins/jenkins
docker-compose方式安装

创建docker-compose.yml文件并写入下面内容

version: '3'services:jenkins:container_name: jenkinsimage: jenkins/jenkinsports:- "8080:8080"- "50000:50000"volumes:- jenkins_home:/var/jenkins_homerestart: unless-stopped

执行命令启动:

# 拉取并启动容器
docker-compose up  -d
# 查看dokcer运行中的服务
docker ps 
# 查看容器日志
docker logs -f 容器id

完成上面操作后

访问 Jenkins

打开浏览器并访问 http://服务器地址:8080会看到如下界面

设置 Jenkins

首次访问 Jenkins 时,要求输入初始管理员密码。要获取密码,在终端中运行以下命令:

docker logs -f 你的jenkins容器id

安装推荐的插件

 配置用户

3. 创建一个新的 Jenkins 作业

New Item介绍

Freestyle project(自由风格项目):这个选项允许用户创建一个自定义的项目,可以执行任何任务,无论是构建、测试、部署还是其他工作。
Pipeline(流水线项目):这个选项允许用户创建一个Jenkins Pipeline,在Pipeline中定义了一系列流程和任务,可以自动化构建、测试、打包、发布和部署过程。
Multibranch Pipeline(多分支流水线项目):这个选项可以创建一个多分支Pipeline项目,同时支持不同的分支构建和测试。
Folder:文件夹,用于组织和管理 Jenkins 中的多个项目


新建Item,输入工程的名称(例如 My Pipeline) ,选择多分支流水线(Multibranch Pipeline),确定

会进入到新建Item的Configuration(配置),点击增加源(Add Source),选择您想要使用的仓库类型并填写详细信息.

执行构建

查看日志

安装maven插件

配置maven和jdk

编译打包

构建 --> 添加构建步骤 --> Executor Shell
返回刚才的项目,添加配置

echo "开始编译和打包"
mvn clean package
echo "编译和打包结束"

新增参数化构建过程,使用JDK1.8编译

4. 设置源码管理

在源码管理设置模块,选择Git,然后输入Gitee项目仓库地址,如下图:

5. 设置构建触发器

  • 配置触发器,例如定时构建、代码提交时构建等。

6. 构建步骤

  • 配置构建的具体步骤,如编译、打包、测试等。

继续往下翻,POST Steps 处,勾选 Run regardless of build result,然后添加构建步骤(Add post-build step),选择执行Windows批处理命令(Execute Windows batch command),然后输入下面内容:

最后点击【保存】按钮,然后开始构建: 

查看编译日志4 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2806635.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

板块一 Servlet编程:第五节 Cookie对象全解 来自【汤米尼克的JAVAEE全套教程专栏】

板块一 Servlet编程:第五节 Cookie对象全解 一、什么是CookieCookie的源码 二、Cookie的具体操作(1)创建Cookie(2)获取Cookie(3)设置Cookie的到期时间(4)设置Cookie的路径…

SpringMVC 学习(一)之 SpringMVC 介绍

目录 1 MVC 介绍 2 SpringMVC 介绍 2.1 SpringMVC 特点 2.2 SpringMVC 的核心组件 2.3 SpringMVC 执行流程 3 参考文档 1 MVC 介绍 MVC (Model View Controller) 是一种设计思想,它将应用程序分为三大组件:模型 (Model)、视图 (View)、控制器 (Con…

恒峰|高压森林应急消防泵|守护森林安全

森林是地球的肺腑,是人类赖以生存的重要资源。然而,随着人类活动的增加,森林火灾频发,给生态环境和人类生活带来严重威胁。为了保护森林资源,我们必须采取有效的措施进行消防。高压森林应急消防泵作为一种高效、环保的…

【复现】用友U8 oa协同工作系统 文件上传漏洞_57

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 用友U8 -OA 协同办公管理系统,可把日常业务、事物、协作等信息在企业的各分子公司、部门、群组、个人之间…

python获取某天气网站公开天气数据

注意:代码仅用于学习 相关网址:https://tianqi.2345.com/wea_history/57687/htm 查找url : 查找城市ID: 城市ID文件demo.js(JavaScript): function get_city(){var provqxnew Array();provqx[10][58321-H 合肥-58321|71873-B 包河-58321|58…

2023年12月CCF-GESP编程能力等级认证C++编程七级真题解析

一、单选题(共15题,共30分) 第1题 定义变量 double x ,如果下面代码输入为 100 ,输出最接近( )。 A:0 B:-5 C:-8 D:8 答案:B 第2题 对于下面动态规划方法实现的函数,以下选项中最适合表达其状态转移函数的为( )。 A: B: C: D:

【Spring】 AOP面向切面编程

文章目录 AOP是什么?一、AOP术语名词介绍二、Spring AOP框架介绍和关系梳理三、Spring AOP基于注解方式实现和细节3.1 Spring AOP底层技术组成3.2 初步实现3.3 获取通知细节信息3.4 切点表达式语法3.5 重用(提取)切点表达式3.6 环绕通知3.7 切…

一分钟 由浅入深 学会Navigation

目录 1.官网正式概念 1.1 初认知 2.导入依赖 2.1 使用navigation 2.2 safe Args插件-> 传递数据时用 3.使用Navigation 3.1 搭建初始框架 3.2 确定action箭头的属性 3.3 为Activity添加NavHostFragment控件 3.4 NavController 管理应用导航的对象 3.5 数据传递(单…

给定一个边与边可能相交的多边形,求它的轮廓线

大家好,我是前端西瓜哥。 最近遇到一个需求,给定一个多边形(边与边可能相交),求这个多边形的轮廓线。 需要注意的是,轮廓线多边形内不能有空洞,使用的不是常见的非零绕数规则(nonze…

SpringBoot3+Vue3 基础知识(持续更新中~)

bean 把方法的返回结果注入到ioc中 1: 2: 3: 组合注解封装 实战篇: 解析token: 统一携带token: 驼峰命名与下划线命名转换: NotEmpty!!! mybatis: PageHelper设置后,会将pageNum,和pageSize自己拼接…

代码随想录算法训练营第四一天 | 背包问题

目录 背包问题01背包二维dp数组01背包一维 dp 数组(滚动数组)分割等和子集 LeetCode 背包问题 01背包 有n件物品和一个最多能背重量为 w 的背包,第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次&#x…

Python urllib、requests、HTMLParser

HTTP协议 HTTP 协议:一般指HTTP(超文本传输)协议。 HTTP是为Web浏览器和Web服务器之间的通信而设计的,基于TCP/IP通信协议嘞传递数据。 HTTP消息结构 客户端请求消息 客户端发送一个HTTP请求到服务器的请求消息包括以下格式 请求行(request line)请求…

【前端素材】推荐优质后台管理系统Start Admin平台模板(附源码)

一、需求分析 后台管理系统是一种用于管理网站、应用程序或系统的工具,它通常作为一个独立的后台界面存在,供管理员或特定用户使用。下面详细分析后台管理系统的定义和功能: 1. 定义 后台管理系统是一个用于管理和控制网站、应用程序或系统…

Linux——静态库

Linux——静态库 静态库分析一下 ar指令生成静态库静态库的使用第三方库优化一下 gcc -I(大写的i) -L -l(小写的l),头文件搜索路径,库文件搜索路径,连接库 今天我们来学习静态库的基本知识。 静态库 在了解静态库之前,我们首先来…

复旦大学MBA聚劲联合会:洞见智慧,拓宽思维格局及国际化视野

12月2日,“焕拥时代 俱创未来”聚劲联合会俱创会年度盛典暨俱乐部募新仪式圆满收官。16家复旦MBA俱乐部、200余名同学、校友、各界同仁齐聚复旦管院,一起在精彩纷呈的圆桌论坛里激荡思想,在活力四射的俱乐部风采展示中凝聚力量。      以…

CSS 的圆角矩形

CSS 的圆角矩形 通过 border-radius 属性使矩形边框带圆角效果成为圆角矩形 语法:border-radius: length; length 是内切圆的半径,其数值越大, 弧线越明显 border-radius 属性值描述length定义圆角的形状%以百分比定义圆角的形状 生成圆形 让 border-…

高和汽车停工停产,创始人丁磊终于发话了!2024的冷门项目,投入小,但是真的很赚钱!

高和创始人丁磊站在停产停工的工厂呢, 环顾冷清❄️的四周,眉头紧锁😣, 停顿片刻后对旁边同样愁眉苦脸的员工说道: 非常抱歉,因为经营的失误,面临了停产停工的窘境。 在互联网🔗、物…

C/C++的内存管理(2)——new与delete的内核与本质

内存管理 operator new 与 operator delete函数回看new与delete的实现内置类型自定义类型 常见面试题 我们已经知道了new与delete的用法及其好处,发现它似乎与C语言中的动态内存开辟的函数(malloc/calloc/realloc)不同 在这里我们特别指出&am…

二进制部署k8s集群之cni网络插件

目录 k8s的三种网络模式 pod内容器之间的通信 同一个node节点中pod之间通信 不同的node节点的pod之间通信 flannel网络插件 flannel的三种工作方式 VxLAN host-GW UDP Flannel udp 模式 Flannel VXLAN 模式 flannel插件的三大模式的总结 calico网络插件 k8s 组网…

命令绕过 [安洵杯 2019]easy_web1

打开题目 打开题目在URL处看到cmd,本能的直接用系统命令ls 发现被过滤了。又注意到imgTXpVek5UTTFNbVUzTURabE5qYz0似乎是一串base64 拿去base64解码 再hex解码一次得到555.png 再将其hex加密 base64加密 反向推出index.php的payload:?imgTmprMlJUWTBOalUzT0RK…