一、Jenkins 简介
(一)简述 Jenkins 的作用与价值
Jenkins 是一款在软件开发领域备受瞩目的开源软件项目,它基于 Java 开发,是极为重要的持续集成工具。在软件开发的整个流程中,Jenkins 发挥着关键作用,能够对那些持续且重复的工作进行有效监控。比如,它可以自动检测代码仓库的变动,当开发人员提交新代码后,按照预先设定好的规则和流程,自动触发构建、测试以及部署等一系列操作,极大地提高了软件开发的效率和质量,让软件的持续集成从设想变为现实,助力开发团队更快速、更稳定地交付软件产品。
二、搭建前的准备工作
(一)环境要求确认
在着手搭建 Jenkins 之前,需要先确认其运行所依赖的环境条件。从硬件方面来看,虽然 Jenkins 本身对硬件资源的需求会根据实际使用情况有所不同,但一般建议内存至少在 1GB 以上,以保证其能够较为顺畅地运行,尤其是在处理复杂项目或者频繁构建任务时,充足的内存能避免出现卡顿甚至运行失败的情况。
而在软件环境方面,Jenkins 运行需要 Java 8 及以上版本的支持。所以,要提前在目标机器上安装并配置好符合要求的 JDK(Java Development Kit),确保 Java 环境变量设置正确,使得系统能够识别并调用 Java 相关命令。
除此之外,根据后续具体的项目需求,像如果要进行代码版本管理及拉取代码等操作,还需要提前安装好 Git;若项目构建依赖 Maven 来管理项目依赖和构建流程,那也得准备好相应的 Maven 环境;若采用特定的服务器(如 Linux 环境下使用 Tomcat 部署 Jenkins),Tomcat 也需要提前进行合适的安装与配置。测试资料获取:点击获取软件测试资料
(二)相关软件下载
-
JDK 下载 :
可以前往 Oracle 官方网站(https://www.oracle.com/java/technologies/javase-downloads.html)下载适合操作系统版本的 JDK,不过需要注意根据自己的操作系统类型(Windows、Linux 等)选择对应的安装包格式。例如在 Windows 下通常是.exe 可执行安装文件,而 Linux 下一般是.tar.gz 等压缩包形式,下载完成后按照相应的安装向导进行安装,并配置好环境变量,比如在 Linux 系统下,编辑
~/.bashrc
或者/etc/profile
文件,添加类似export JAVA_HOME=/usr/local/java/jdk1.8.0_XXX
(这里的XXX
为具体版本号)以及将$JAVA_HOME/bin
添加到PATH
环境变量中,然后通过source
命令使其生效。 -
Git 下载 :
Git 的下载途径也较为多样,在 Windows 上,可以从 Git 官方网站(https://git-scm.com/downloads)下载对应的安装程序,按照提示一步步完成安装即可。在 Linux 系统中,常见的是通过包管理器进行安装,比如在基于 Debian 或 Ubuntu 的系统中,可以使用
sudo apt-get install git
命令进行安装;在基于 Red Hat 或 CentOS 的系统里,则可以通过sudo yum install git
命令来安装。 -
Maven 下载 :
访问 Maven 官方网站(https://maven.apache.org/download.cgi),选择合适的版本进行下载,下载后的文件同样需要解压到指定目录,并配置好相应的环境变量,比如在 Windows 下设置
MAVEN_HOME
环境变量指向解压目录,然后在PATH
中添加%MAVEN_HOME%\bin
;在 Linux 下类似 JDK 的配置方式,在相关配置文件中添加MAVEN_HOME
变量以及更新PATH
变量使其包含$MAVEN_HOME/bin
路径。 -
Tomcat 下载(针对 Linux 环境下可能用到的情况) :
可以从 Apache Tomcat 官方网站(https://tomcat.apache.org/download-90.cgi)选择合适的版本下载,一般选择核心的二进制压缩包形式,下载后解压到指定目录,同样需要配置好相关的启动参数以及环境变量等,方便后续部署 Jenkins 等应用。
三、Jenkins 安装步骤
(一)Windows 系统下安装
-
下载 Jenkins :
首先,打开 Jenkins 的官方网站(https://jenkins.io/download/),在下载页面中,根据自己的需求选择合适的版本类型,一般来说,季度稳定版相对更为可靠,适合生产环境使用;开发版则可能包含一些新功能和改进,但稳定性可能稍逊一筹。选择 Windows 对应的安装文件格式,通常是
.zip
格式的压缩包,比如jenkins-2.176.3.zip
这样的文件名,点击下载按钮将其下载到本地磁盘上。 -
解压与安装 :
下载完成后,找到下载好的压缩包文件,使用解压软件(如 WinRAR、7-Zip 等)将其解压到指定的目录,建议选择非系统盘(如 D 盘、E 盘等)的路径,避免占用过多系统盘空间以及可能出现的权限问题等。解压后会得到相应的文件夹,里面包含了 Jenkins 的可执行文件等内容。接着,进入解压后的文件夹,找到
.msi
格式的安装文件,双击运行它,按照安装向导页面的提示逐步进行操作,在选择安装路径时,可以再次确认或修改为自己期望的路径,一路点击"下一步"按钮,直到完成安装。 -
访问并配置 Jenkins :
安装结束后,系统会自动在默认浏览器中打开 Jenkins 的访问页面(一般地址是
http://localhost:8080/
),如果没有自动打开,可以手动在浏览器地址栏输入该地址进行访问。首次访问时,会提示需要解锁 Jenkins,页面上会给出获取解锁密码的提示信息,按照提示去相应的文件路径(通常在C:\Program Files (x86)\Jenkins\secrets\initialAdminPassword
这个位置,具体可能因安装路径不同而稍有变化)找到密码文件,使用文本编辑器打开它,复制里面的密码内容,粘贴到页面的解锁框中,点击"继续"按钮。测试资料获取:点击获取软件测试资料
接下来进入插件安装页面,这里可以选择安装推荐插件,Jenkins 会自动下载并安装一系列常用的插件,帮助快速搭建起基本可用的环境;插件安装完成后,会要求创建一个管理员用户,填写用户名、密码以及邮箱等信息后点击"保存并继续";之后还可以根据实际情况修改 Jenkins 的访问地址端口(例如,如果 8080 端口已被其他程序占用,可以修改为其他未使用的端口),配置完成后点击"保存"按钮,至此,Windows 系统下的 Jenkins 就基本搭建完成,可以开始使用了。
(二)Linux 系统下安装
- 安装依赖软件(如 JDK、Git 等) :
在 Linux 系统中,首先要确保已经安装好了 JDK。可以通过命令java -version
来查看系统是否已经安装了 Java,如果没有安装,则需要根据系统类型进行下载安装。例如在 CentOS 系统中,可以通过以下步骤安装 JDK:
bash
# 下载 JDK 安装包(这里以 jdk1.8 为例,实际可根据需求替换版本)
wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" "https://download.oracle.com/otn-pub/java/jdk/8uXXX-bXXX/jdk-8uXXX-linux-x64.tar.gz"
# 解压安装包
tar -zxvf jdk-8uXXX-linux-x64.tar.gz
# 移动到指定目录(如 /usr/local/java 目录下)
sudo mv jdk1.8.0_XXX /usr/local/java
# 配置环境变量,编辑 /etc/profile 文件
sudo vi /etc/profile
# 在文件末尾添加以下内容
export JAVA_HOME=/usr/local/java/jdk1.8.0_XXX
export PATH=$PATH:$JAVA_HOME/bin
# 使环境变量生效
source /etc/profile
对于 Git 的安装,在 CentOS 系统中,可以使用 yum
命令进行安装,执行 sudo yum install git
命令,系统会自动从默认的软件仓库中下载并安装 Git;如果需要安装特定版本或者从源码编译安装等情况,则需要先获取相应的源码包,按照编译安装的流程进行操作,不过一般使用包管理器安装就能满足大部分需求。
- 下载 Jenkins 安装包(war 包等形式) :
可以直接从 Jenkins 官方网站下载jenkins.war
文件,不过有时候从国内的镜像站下载速度会更快,比如清华大学开源软件镜像站(https://mirrors.tsinghua.edu.cn/jenkins/),使用wget
命令来下载,例如:
bash
wget https://mirrors.tsinghua.edu.cn/jenkins/war-stable/latest/jenkins.war
这样就能将 Jenkins 的 war
包下载到本地当前目录下。
- 部署与启动 :
将下载好的jenkins.war
包移动到合适的位置,比如放置在已经安装好的 Tomcat 的webapps
目录下(前提是已经安装配置好了 Tomcat),然后进入 Tomcat 的bin
目录,执行启动脚本(如./startup.sh
)启动 Tomcat,Tomcat 在启动过程中会自动解压jenkins.war
包,并生成相应的文件夹结构用于存放 Jenkins 的各类文件。启动完成后,可以通过服务器的 IP 地址和对应的端口号(Tomcat 默认端口一般是 8080,如果有修改则使用修改后的端口)在浏览器中访问 Jenkins,首次访问同样需要获取并输入解锁密码,密码的位置一般在服务器上/var/lib/jenkins/secrets/initialAdminPassword
文件中,按照提示完成解锁以及后续的插件安装、管理员用户创建等配置操作,就可以正常使用 Jenkins 了。
(三)Docker 方式安装
- 下载 Jenkins 镜像 :
如果选择使用 Docker 方式来安装 Jenkins,首先需要确保已经安装并启动了 Docker 服务。然后,在命令行中使用docker pull
命令从 Docker 仓库拉取 Jenkins 镜像,例如想要拉取基于 JDK11 的 Jenkins 镜像,可以执行以下命令:
bash
docker pull jenkins/jenkins:jdk11
Docker 会自动从远程仓库下载相应的镜像到本地,下载速度取决于网络情况。
- 创建 Jenkins 容器 :
镜像下载完成后,就可以使用docker run
命令来创建 Jenkins 容器了,在创建容器时需要配置一些关键的参数,比如:
bash
docker run -d \
-p 8080:8080 \
-p 50000:50000 \
--name my-jenkins \
-v /var/jenkins_home:/var/jenkins_home \
--restart=always \
jenkins/jenkins:jdk11
上述命令中:
-d
表示让容器在后台运行,以守护进程的方式启动。-p
用于端口映射,将主机的 8080 端口映射到容器内 Jenkins 默认的 8080 端口,方便通过主机的该端口访问 Jenkins;50000 端口一般用于 Jenkins 的代理等相关功能,同样进行映射。--name
是给容器指定一个名称,方便后续对容器进行管理,这里取名为my-jenkins
。-v
是进行卷挂载,将主机的/var/jenkins_home
目录挂载到容器内对应的目录,这样可以保证 Jenkins 的配置数据等能够持久化存储,避免容器删除后数据丢失。--restart=always
则设置了容器的重启策略,让容器在意外停止等情况下能够自动重启,保障服务的连续性。测试资料获取:点击获取软件测试资料
- 验证启动及后续操作 :
创建容器后,可以通过访问http://主机IP:8080
(这里的主机 IP 是安装 Docker 的服务器 IP 地址)来验证 Jenkins 容器是否启动成功,如果能够正常打开 Jenkins 的登录页面,说明启动成功。首次登录同样需要解锁,密码获取方式可以通过查看容器的日志来查找,执行docker logs my-jenkins
命令,在输出的日志内容中找到类似解锁密码的提示信息,复制密码进行解锁操作。解锁完成后,按照常规流程安装 Jenkins 常用的工具插件、创建项目任务、配置构建步骤等,就可以利用 Docker 部署的 Jenkins 开展持续集成等相关工作了。
四、Jenkins 搭建常见问题及解决办法
(一)访问报错问题
在搭建 Jenkins 的过程中,经常会遇到访问相关页面时出现报错的情况。例如,在执行安装步骤到解锁 Jenkins 时,访问特定路径可能出现 404 报错,这有可能是由于浏览器自动跳转的地址不正确或者 Jenkins 服务尚未完全启动导致的。此时,可以尝试手工在浏览器地址栏输入正确的访问路径,比如在 Windows 下确认是否是 http://localhost:8080/
,在 Linux 下根据实际配置情况输入对应的 IP 地址和端口号组成的访问地址。另外,如果是服务启动问题,可以查看相应的服务日志(在 Windows 下查看 Jenkins 安装目录下的日志文件,在 Linux 下查看如 /var/log/jenkins/jenkins.log
文件等),排查启动失败的原因,比如是否是端口被占用、配置文件错误等问题,然后针对性地进行解决。
(二)配置相关问题
-
插件安装问题 :
在安装 Jenkins 插件时,可能会遇到各种报错情况。比如无法连接到 Jenkins 的插件仓库,导致插件无法下载,这时可以尝试修改插件下载源,在 Jenkins 的系统管理 - 插件管理 - 高级选项中,将插件下载地址替换为国内的镜像源,像清华大学开源软件镜像站提供的 Jenkins 插件镜像地址(https://mirrors.tsinghua.edu.cn/jenkins/plugins/),修改后点击"保存"按钮,再重新尝试安装插件。另外,如果遇到找不到特定插件的情况,有可能是插件名称输入错误或者该插件与当前 Jenkins 版本不兼容,可以仔细核对插件名称,并查看插件的版本兼容性说明,选择合适的版本进行安装。
-
权限相关问题 :
有时候登录 Jenkins 后出现空白页,这很可能是权限不足导致的问题。一种常见的解决办法是修改 Jenkins 的配置文件,一般是
$Jenkins_home/config.xml
文件(在 Windows 下对应安装目录下的该文件,在 Linux 下通常是/var/lib/jenkins/config.xml
文件),找到与权限相关的配置节点,检查权限设置是否正确,比如确保 Jenkins 用户对相关目录和文件有足够的读写权限,必要时可以修改文件权限,使用chmod
命令(在 Linux 下)赋予相应权限,然后重启 Jenkins 服务,再次尝试访问查看是否解决问题。 -
环境变量及编码问题 :
当在 Jenkins 中执行脚本出现没有环境变量的情况时,需要检查在 Jenkins 里是否正确配置了相应的全局工具以及对应的环境变量。比如对于 JDK、Maven 等工具,在 Jenkins 的全局工具配置中,要准确填写这些工具在服务器上的安装路径,确保 Jenkins 能够找到并调用它们。
而对于构建出现乱码的问题,比如 maven 乱码和 Jenkins 构建乱码,可能是由于编码设置不一致导致的。可以尝试修改 Jenkins 的相关配置文件,例如在 Linux 下修改 Jenkins.xml
文件(一般在 /etc/sysconfig/jenkins
目录下),在文件中添加编码相关的配置参数,如 <arguments>-Dfile.encoding=UTF-8</arguments>
,然后重启 Jenkins 服务,看乱码问题是否得到解决。
五、Jenkins 基本使用与配置拓展
(一)常用插件安装
在 Jenkins 的使用过程中,通过安装合适的插件可以极大地拓展其功能。进入 Jenkins 的系统管理 - 插件管理页面,在这里可以看到"可用插件""已安装插件"等不同的选项卡。常用的插件有很多,比如用于代码版本管理的 Git 插件、用于构建项目的 Maven 插件、用于展示构建结果的 HTML Publisher 插件等。
如果要安装插件,可以直接在"可用插件"列表中搜索想要的插件名称,然后勾选对应的插件,点击"直接安装"按钮,Jenkins 会自动从配置好的插件下载源下载并安装插件。另外,也可以从 Jenkins 的官方插件网站(https://plugins.jenkins.io/)下载插件文件(一般是 .hpi
格式),然后在插件管理页面选择"高级"选项卡,在"上传插件"区域,点击"选择文件"按钮,选中下载好的插件文件,点击"上传"按钮进行上传安装。需要注意的是,有些插件之间可能存在依赖关系,安装时要按照依赖顺序依次进行安装,否则可能出现插件无法正常使用的情况。
(二)全局工具配置
在 Jenkins 中,进行全局工具配置是确保后续项目构建等操作能够顺利进行的重要环节。进入系统管理 - 全局工具配置页面,在这里可以对 JDK、Maven、Git 等常用工具进行配置。
对于 JDK 的配置,填写 JDK 的安装路径,比如在 Linux 下如果 JDK 安装在 /usr/local/java/jdk1.8.0_XXX
目录,就在"JDK"配置项的"JDK 安装目录"字段中填写该路径;在 Windows 下填写对应的 JDK 实际安装路径,然后点击"保存"按钮。
Maven 的配置类似,填写 Maven 的安装目录路径,并且还可以设置一些 Maven 的相关参数,如本地仓库位置等,确保 Jenkins 在构建项目时能够正确调用 Maven 来管理项目依赖和进行构建操作。
Git 的配置则需要填写 Git 的可执行文件所在路径,一般在安装 Git 后系统能够自动识别,如果识别不了,可以手动查找并填写正确的路径,保证 Jenkins 可以能够顺利地从代码仓库中拉取代码,进行版本控制和管理。
测试资料获取:点击获取软件测试资料
(三)新建项目与构建配置
- 新建项目步骤 :
在 Jenkins 首页,点击"新建项目"按钮,进入新建项目页面。首先填写项目的名称,例如"my-java-project",然后选择项目类型,这里以"自由风格项目"为例进行介绍。点击"确定"按钮后,进入项目的详细配置页面。
在"源码管理"部分,如果项目使用 Git 进行版本管理,选择"Git",然后在"Repository URL"字段填写项目代码仓库的地址,比如"https://github.com/your-username/your-project.git",并可以根据需要填写相应的认证信息(如果代码仓库是私有的),如用户名和密码或者 SSH 密钥等。
在"构建触发器"部分,可以设置项目的构建触发条件,例如选择"Poll SCM",并设置定时表达式,如"*/5 * * * *"表示每隔 5 分钟检查一次代码仓库是否有更新,如果有更新则触发构建;或者根据实际情况选择其他触发方式,如在代码提交到特定分支时触发构建等。
在"构建环境"部分,可以根据项目需求选择需要的构建环境,如是否需要使用特定的 JDK 版本、Maven 版本等,还可以配置一些环境变量等信息。
在"构建"部分,点击"增加构建步骤"按钮,选择合适的构建步骤,例如如果是 Java 项目且使用 Maven 构建,可以选择"Execute shell"(在 Linux 环境下)或者"Execute Windows batch command"(在 Windows 环境下),然后在命令输入框中填写 Maven 构建命令,如"mvn clean install",这将执行清理项目、编译代码并安装到本地仓库等一系列操作。
- 构建过程配置示例 :
假设我们有一个简单的 Java Web 项目,使用 Maven 进行构建管理,并且项目代码托管在 GitHub 上。首先在"源码管理"中填写好 GitHub 仓库地址,并确保 Jenkins 所在服务器能够正常访问该仓库(可能需要配置 SSH 密钥等认证方式)。
在"构建"部分,填写如下的构建脚本:
bash
# 进入项目目录
cd /var/jenkins_home/workspace/my-java-project
# 使用 Maven 进行清理操作,删除之前构建生成的文件
mvn clean
# 执行 Maven 构建命令,编译代码、运行测试并打包项目
mvn package
# 将构建生成的 WAR 文件复制到 Tomcat 的 webapps 目录下(假设已经安装并配置好 Tomcat,且 Tomcat 的 webapps 目录可写)
cp target/my-java-project.war /usr/local/tomcat/webapps/
通过这样的构建配置,当 Jenkins 检测到代码仓库有更新或者按照设定的构建触发器条件触发构建时,就会自动拉取最新代码,执行构建操作,并将构建生成的 WAR 文件部署到 Tomcat 中,实现了从代码更新到项目部署的自动化流程,大大提高了项目的开发和部署效率。
总之,Jenkins 的搭建和使用是一个需要细心和耐心的过程,通过合理的环境准备、正确的安装步骤以及有效的配置和问题解决,能够让 Jenkins 在软件开发的持续集成和持续部署中发挥重要作用,帮助开发团队提高工作效率,保障软件质量,快速响应市场需求,提升项目的整体竞争力。在实际使用过程中,还可以根据项目的具体特点和需求,进一步探索和拓展 Jenkins 的功能和应用场景,不断优化和完善软件开发流程。
测试资料获取:点击获取软件测试资料