CI/CD—Jenkins、Maven安装

Jenkins简介 

Jenkins 是一款广泛使用的开源持续集成和持续交付(CI/CD)工具,以下是对它的详细介绍:

基本信息

  • 起源与发展:Jenkins 最早起源于 Hudson 项目,后来从 Hudson 项目中分离出来独立发展。自 2011 年正式成为独立项目后,Jenkins 凭借其强大的功能和活跃的社区支持,迅速成为全球最受欢迎的 CI/CD 工具之一,在软件开发领域得到了广泛的应用和推广。
  • 主要功能:核心功能是持续集成,它可以定期自动从代码仓库拉取最新代码,然后执行构建、测试等一系列任务。并且支持持续交付和持续部署,能将构建好的软件自动部署到测试环境或生产环境,实现软件的快速迭代和交付。还提供了丰富的插件扩展机制,通过安装各种插件,可以与众多工具和平台集成,如代码仓库 Git、Subversion,测试框架 JUnit、TestNG,容器平台 Docker 等,满足不同项目的多样化需求。

特点

  • 高度可扩展性:拥有大量的插件,涵盖了从代码管理、构建工具、测试框架到部署工具等各个方面。用户可以根据具体项目需求,轻松安装和配置插件,扩展 Jenkins 的功能,使其能够适应不同技术栈和开发流程的项目。
  • 多平台支持:可以在多种操作系统上运行,包括 Windows、Linux、Mac OS 等。这使得它能够很好地适配不同的开发和运维环境,无论团队使用何种操作系统,都能方便地部署和使用 Jenkins。
  • 易于配置和使用:提供了直观的 Web 界面,用户通过浏览器即可方便地进行各种配置和操作。在 Web 界面中,用户可以轻松创建和管理任务(Jobs),配置构建步骤、触发条件、环境变量等,无需编写复杂的脚本或命令,降低了使用门槛。
  • 强大的社区支持:拥有庞大且活跃的社区,这意味着用户在使用过程中遇到问题时,能够很容易地在社区中找到解决方案、获取相关文档和教程,也可以参与社区的讨论和贡献,推动 Jenkins 的不断发展和完善。

应用场景

  • 软件开发流程集成:在软件开发的整个生命周期中,Jenkins 可以与开发、测试、运维等各个环节的工具和流程紧密集成。例如,在开发阶段,它可以与代码编辑器集成,实时检测代码提交并触发构建;在测试阶段,能与各种测试工具配合,自动执行单元测试、集成测试等;在运维阶段,可与部署工具结合,实现自动化部署。
  • 多项目管理与协作:对于拥有多个项目的团队或企业,Jenkins 可以统一管理所有项目的 CI/CD 流程。通过创建不同的任务和视图,对每个项目进行独立配置和管理,同时又能在一个平台上进行整体监控和调度,方便团队成员之间的协作和沟通。
  • 持续部署与自动化运维:Jenkins 能够实现软件的持续部署,将构建好的应用程序自动部署到生产环境中,减少人工干预,提高部署效率和准确性。配合自动化运维工具,还可以实现服务器的自动配置、环境搭建等任务,提升整个运维过程的自动化水平。

Maven 简介

Maven 是一个基于项目对象模型(POM,Project Object Model)的项目管理和构建自动化工具,由 Apache 软件基金会开发。它主要用于 Java 项目,但也可以用于其他语言的项目。Maven 的核心功能和优势体现在以下几个方面:

  • 依赖管理:Maven 能够自动下载项目所需的依赖库,并处理依赖之间的版本冲突。开发者只需在项目的 POM 文件中声明所需的依赖,Maven 会从中央仓库或其他指定的仓库中下载这些依赖。
  • 项目构建:Maven 定义了一套标准的项目构建生命周期,包括清理、编译、测试、打包、部署等阶段。通过执行简单的命令,开发者可以完成整个项目的构建过程,保证构建过程的一致性和可重复性。
  • 项目管理:Maven 提供了统一的项目结构和配置文件(POM.xml),使得项目的管理和维护更加方便。团队成员可以根据 POM 文件快速了解项目的依赖、插件和构建配置等信息。

Maven 使用方法

1. 安装 Maven

  • 下载:访问 Maven 官方网站(Download Apache Maven – Maven),下载适合你操作系统的二进制发行版。
  • 解压:将下载的压缩包解压到指定目录,例如 C:\apache-maven-3.8.6(Windows)或 /usr/local/apache-maven-3.8.6(Linux)。
  • 配置环境变量
    • Windows:在系统环境变量中添加 MAVEN_HOME 变量,值为 Maven 的安装目录,然后在 Path 变量中添加 %MAVEN_HOME%\bin
    • Linux:编辑 ~/.bashrc 或 /etc/profile 文件,添加以下内容:
export MAVEN_HOME=/usr/local/apache-maven-3.8.6
export PATH=$PATH:$MAVEN_HOME/bin

保存文件后,执行 source ~/.bashrc 或 source /etc/profile 使配置生效。

  • 验证安装:打开终端或命令提示符,执行 mvn -version 命令,如果显示 Maven 的版本信息,则说明安装成功。

2. 创建 Maven 项目

  • 使用命令行创建:打开终端,执行以下命令创建一个简单的 Java 项目:
mvn archetype:generate -DgroupId=com.example -DartifactId=my-project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
  • groupId:项目的组 ID,通常是公司或组织的域名倒序,如 com.example
  • artifactId:项目的唯一标识符,如 my-project
  • archetypeArtifactId:项目的原型,maven-archetype-quickstart 是一个简单的 Java 项目原型。
  • interactiveMode=false:表示不使用交互式模式。
  • 使用 IDE 创建:大多数集成开发环境(如 IntelliJ IDEA、Eclipse)都支持创建 Maven 项目。在 IDE 中选择创建 Maven 项目,按照向导填写 groupIdartifactId 等信息即可。

3. 配置 POM 文件

POM 文件(pom.xml)是 Maven 项目的核心配置文件,以下是一个简单的 POM 文件示例:

<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>my-project</artifactId><version>1.0-SNAPSHOT</version><dependencies><!-- 添加项目依赖 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency></dependencies><build><plugins><!-- 配置编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build>
</project>
  • <dependencies>:用于声明项目的依赖,每个 <dependency> 元素包含 groupIdartifactId 和 version 等信息。
  • <build>:用于配置项目的构建过程,包括插件的使用。

4. 执行 Maven 命令

  • 清理项目:执行 mvn clean 命令,删除项目中的编译输出文件,如 target 目录。
  • 编译项目:执行 mvn compile 命令,将项目的源代码编译为字节码文件。
  • 运行测试:执行 mvn test 命令,运行项目中的单元测试用例。
  • 打包项目:执行 mvn package 命令,将项目打包为 JAR 或 WAR 文件。
  • 安装项目到本地仓库:执行 mvn install 命令,将项目打包并安装到本地 Maven 仓库,以便其他项目可以引用。
  • 部署项目到远程仓库:执行 mvn deploy 命令,将项目打包并部署到远程 Maven 仓库。

通过以上步骤,你可以使用 Maven 来管理和构建 Java 项目。在实际开发中,你可以根据项目的需求,进一步配置 POM 文件,添加更多的依赖和插件。

一、环境准备

1、机器资源

IP内存CPU磁盘空间操作系统安装目录
192.168.72.1318G4核80GCentOS 7.9/opt/devops

二、安装Maven

去官网下载安装包:Download Apache Maven – Maven

1、解压安装包

tar -zxvf apache-maven-3.8.6-bin.tar.gz
mv apache-maven-3.8.6 maven

2、配置环境变量

2.1、配置环境变量

#编辑环境变量
vim /etc/bashrc
MAVEN_PATH=/opt/devops/maven
export PATH=$PATH:${MAVEN_PATH}/bin#加载环境变量
source /etc/bashrc#验证
echo $PATH 

2.2、检查环境变量是否生效

mvn -v

 

3、修改maven的仓库地址

vim /opt/devops/maven/conf/settings.xml
#在159行插入如下内容<mirror>  <id>alimaven</id>  <name>aliyun maven</name>  <url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf>          </mirror>

三、安装JDK17

因为Jenkins版本需要这里我们安装JDK17

1、下载JDK17

wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.8.1+1/OpenJDK17U-jdk_x64_linux_hotspot_17.0.8.1_1.tar.gz

2、解压安装包

tar -zxvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.8.1_1.tar.gz
mv OpenJDK17U-jdk_x64_linux_hotspot_17.0.8.1_1.tar.gz java

3、配置环境变量

#编辑环境变量
vim /etc/bashrc
JAVA_PATH=/opt/devops/java
export PATH=$PATH:${JAVA_PATH}/bin#加载环境变量
source /etc/bashrc#验证
echo $PATH 

验证:

四、安装Jenkins

下载Jenkins:War Jenkins Packages

1、 运行Jenkins.war程序

nohup java -jar jenkins.war >/dev/null 2>&1 &

 

 

2、Jenkins初始化

 2.1、 浏览器上输入:http://192.168.72.131:8080/

2.2、根据截图中提示的密码文件查看初始密码并进行登录

 2.3、选择安装推荐的插件

2.4、 创建用户

参考资料:

jdk11版本安装:Linux安装openJDK11 - java_my_skill - 博客园

jdk下载链接:Java Downloads | Oracle 中国

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抽奖系统测试报告

项目链接: 管理员登录页面 项目功能: 管理员登录: 登录方式分为两种: 手机号密码登录: 正确输入密码和手机号登录 短信验证码登录: 输入手机号,等待验证码,输入验证码登录 管理员注册: 登录页面点击注册按钮即可注册管理员身份 人员管理模块: 人员管理模块分为注册…

【高级篇】大疆Pocket 3加ENC编码器实现无线RTMP转HDMI进导播台

【高级篇】大疆Pocket 3加ENC编码器实现无线RTMP转HDMI进导播台 文章目录 准备工作连接设备RTMP概念ENCSHV2推流地址设置大疆Pocket 3直播设置总结 老铁们好&#xff01; 很久没写软文了&#xff0c;今天给大家带了一个干货&#xff0c;如上图&#xff0c;大疆Pocket 3加ENC编…

【 <一> 炼丹初探:JavaWeb 的起源与基础】之 Servlet 与 JSP 的协作:MVC 模式的雏形

<前文回顾> 点击此处查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&sharefromfrom_link <今日更新> 一、Servl…

【不是广告】华为昇腾的一小步,Pytorch的一大步

华为昇腾的一小步&#xff0c;Pytorch的一大步 关键词 首个、中国首个、全球第十、最高级别&#xff01;看看这些字眼&#xff0c;就知道事情不简单&#xff01; 书接上文《Pytorch的一小步&#xff0c;昇腾芯片的一大步》 在2023年10月4日PyTorch 2.1版本的发布博客上&…

python从入门到精通(二十六):python文件操作之Word全攻略(基于python-docx)

python文件操作之word技巧大全 word技巧基础到高级操作大全A.准备工作1. 安装python-docx库2. 导入库 B.基础操作1. 创建Word文档1.1 创建文档对象1.2 添加word标题1.3 添加word段落1.4 设置段落样式1.5 创建有序列表1.6 创建无序列表1.7添加word分页1.8 添加word图片1.9 添加w…

Debian二次开发一体化工作站:提升科研效率的智能工具

在科研领域&#xff0c;数据处理是实验成功的关键环节之一。随着实验数据的复杂性和规模不断增加&#xff0c;传统的数据处理方法已经难以满足科研人员的需求。这时&#xff0c;一体化工作站应运而生&#xff0c;成为科研实验数据处理的 “智能大脑”。 一体化工作站&#xff…

linux学习(五)(服务器审查,正常运行时间负载,身份验证日志,正在运行的服务,评估可用内存)

服务器审查 在 Linux 中审查服务器的过程包括评估服务器的性能、安全性和配置&#xff0c;以确定需要改进的领域或任何潜在问题。审查的范围可以包括检查安全增强功能、检查日志文件、审查用户帐户、分析服务器的网络配置以及检查其软件版本。 Linux 以其稳定性和安全性而闻名…

Redis- 大key

大key 什么是大key问题大key的危害大key的识别方法大key问题的解决方案数据结构优化与拆分压缩与序列化优化预防与监控机制 什么是大key问题 大Key问题是指在Redis等内存数据库中&#xff0c;某个Key对应的value数据结构过大&#xff0c;通常是指单个Key的大小超过10KB甚至达到…

C语言_数据结构总结6:链式栈

纯c语言代码&#xff0c;不涉及C 顺序栈的实现&#xff0c;欢迎查看这篇文章&#xff1a;C语言_数据结构总结5&#xff1a;顺序栈-CSDN博客 0. 结构单元 #include<stdio.h> #include<stdlib.h> typedef int ElemType; typedef struct Linknode { ElemType…

新品速递 | 多通道可编程衰减器+矩阵系统,如何破解复杂通信测试难题?

在无线通信技术快速迭代的今天&#xff0c;多通道可编程数字射频衰减器和衰减矩阵已成为测试领域不可或缺的核心工具。它们凭借高精度、灵活配置和强大的多通道协同能力&#xff0c;为5G、物联网、卫星通信等前沿技术的研发与验证提供了关键支持。从基站性能测试到终端设备校准…

AI自动化应用的影响

生产力的迭代也终将伴随着一代人的落幕。 2025年是AI应用爆发的开局之年&#xff0c;预计3-5年现有生产关系将出现颠覆性改革。 AI自动化对经济和就业的影响是一个复杂且多维的问题&#xff0c;其长期影响取决于技术进步、政策调控、社会适应能力等多重因素的综合作用。以下从技…

润开鸿重磅首发基于“RISC-V+OpenHarmony+星闪”的“鸿锐”AI开发平台

润开鸿重磅首发基于“RISC-VOpenHarmony星闪”的“鸿锐”AI开发平台 2月28日&#xff0c;2025中国RISC-V生态大会在北京中关村国际创新中心隆重召开。作为领先的鸿蒙生态专业技术公司和终端操作系统发行版提供商&#xff0c;以及不断推进基于RISC-V与OpenHarmony全栈开源生态构…

Java 深度复制对象:从基础到实战

目录 一、深度复制的概念二、实现深度复制的方法1. 使用序列化2. 手动实现深度复制 三、总结 在 Java 编程中&#xff0c;对象的复制是一个常见的需求。然而&#xff0c;简单的复制操作&#xff08;如直接赋值&#xff09;只会复制对象的引用&#xff0c;而不是创建一个新的对象…

C++ Primer 交换操作

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…

FFmpeg-chapter7和chapter8-使用 FFmpeg 解码视频(原理篇和实站篇)

解码流程如下图 流程&#xff1a;首先&#xff0c;通过 avcodec_alloc_context3(nullptr) 分配一个 AVCodecContext 结构体&#xff0c;然后使用 avcodec_parameters_to_context 将参数复制到上下文中&#xff0c;接着通过 avcodec_find_decoder 查找指定的解码器&#xff0c;并…

2025 docker安装TiDB数据库

1.确保安装了docker和docker-compose sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod x /usr/local/bin/docker-compose2.编写 Docker Compose 文…

定制化开发的WooCommerce独立站商城更安全

定制化开发的WooCommerce独立站商城在安全性、交易风险控制以及整体用户体验方面有显著优势。以下是定制化开发在这些方面的具体表现&#xff1a; 1. 安全性更高 定制化开发允许开发者从底层架构开始设计和优化&#xff0c;确保网站的安全性。以下是具体表现&#xff1a; (1…

CSS【实战】模拟 html 的 title 属性(鼠标悬浮显示提示文字)

效果 原理 提示内容的定位&#xff1a;子绝父相鼠标悬浮前&#xff0c;提示内容visibility: hidden;通过 :hover 触发鼠标悬浮样式&#xff0c;提示内容变为 visibility: visible; 代码 <!DOCTYPE html> <html lang"en"><head><meta charset&qu…

K8s控制器Deployment详解

回顾 ReplicaSet 控制器,该控制器是用来维护集群中运行的 Pod 数量的&#xff0c;但是往往在实际操作的时候&#xff0c;我们反而不会去直接使用 RS&#xff0c;而是会使用更上层的控制器&#xff0c;比如说 Deployment。 Deployment 一个非常重要的功能就是实现了 Pod 的滚动…

【MYSQL数据库异常处理】执行SQL语句报超时异常

MYSQL执行SQL语句异常&#xff1a;The last packet successfully received from the server was 100,107 milliseconds ago. The last packet sent successfully to the server was 100,101 milliseconds ago. 这个错误表明 MySQL 服务器与 JDBC 连接之间的通信超时了。通常由…