CentOS服务器上搭建Jenkins+maven+GitLab(一)——环境搭建
2).实验环境4核8G CentOS7.9.2009 192.168.142.102/103 GitLab(yum/docker)1核1G CentOS7.9.2009 192.168.142.104 Jenkinsmavengit1核1G CentOS7.9.2009 192.168.142.105 测试服务器所有服务器均已设置阿里云yum源并且yum -y install epel-release关闭SELinux和防火墙。(3).104服务器安装JenkinsmavengitJenkins下载地址https://www.jenkins.io/download/maven下载地址https://maven.apache.org/download.cgiJenkins文档相当完善可以根据需要对照操作手册自行更改安装方式我这里使用war包直接安装。maven我这里采用二进制安装包。1安装JDK根据下载的Jenkins 2.555.1 LTS版本以及Jenkins与java版本对应关系所以需要JDK21或JDK25。详细对照表如下二进制安装JDK25123456789101112131415161718[rootlocalhost ~]# java -version-bash: java: 未找到命令//我的系统没有如果显示的是openjdk version ...那就是openjdk#如果存在jdk可以使用这个命令卸载自带的openjdk[rootlocalhost ~]# yum -y remove java-*#解压二进制文件[rootlocalhost ~]# tar xvf jdk-25_linux-x64_bin.tar.gz -C /usr/local/#新增环境变量文件配置环境变量[rootlocalhost ~]# vim /etc/profile.d/jdk25.shexportJAVA_HOME/usr/local/jdk-25.0.3exportCLASS_PATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jar/tools.jar:$JAVA_HOME/jre/libexportPATH$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH#加载环境变量[rootlocalhost ~]# . /etc/profile.d/jdk25.sh#测试[rootlocalhost ~]# java -versionjava version25.0.32026-04-21 LTSJava(TM) SE Runtime Environment (build 25.0.39-LTS-195)Java HotSpot(TM) 64-Bit Server VM (build 25.0.39-LTS-195, mixed mode, sharing)2上传Jenkins的war包并启动1234567891011121314151617181920#因为我是最小化安装的CentOS所以需要安装字体库否则会报错[rootlocalhost ~]# yum install -y fontconfig dejavu-sans-fonts#第一次可以不用后台启动方便查看管理员密码可以不加--httpPort8080默认端口就是8080[rootlocalhost ~]# java -jar jenkins.war --httpPort8080......[LF] *************************************************************[LF] *************************************************************[LF] *************************************************************[LF][LF] Jenkins initial setup is required. An admin user has been created and a password generated.[LF] Please use the following password to proceed to installation:[LF][LF] b58d54388531438da14c3319465a36d6[LF][LF] This may also be found at:/root/.jenkins/secrets/initialAdminPassword[LF][LF] *************************************************************[LF] *************************************************************[LF] *************************************************************......浏览器访问192.168.142.104:8080会有一段时间初始化请耐心等待。进入到如下页面后将管理员密码输入其中并继续。之后会来到自定义插件的页面如下。这里点击“选择插件来安装”然后取消所有插件来跳过插件的安装后面更换国内镜像源再安装。我这边先将建议插件记录下来方便后面安装Folders、OWASP Markup Formatter、Build Timeout、Credentials Binding、Timestamper、Workspace Cleanup、Ant、Gradle、Pipeline、GitHub Branch Source、Pipeline: GitHub Groovy Libraries、Pipeline Graph View、Git、SSH Build Agents、Matrix Authorization Strategy、LDAP、Email Extension、Mailer、Dark Theme、Localization: Chinese (Simplified)。接着进入创建管理员的页面如下创建管理员。最下面的Full name其实是填写Email地址我这里就随意填写了。默认配置之后就直接进入使用。3Jenkins配置国内镜像源新版本右上角设置--Plugins插件--Advanced settings(高级设置)--Update Site(升级站点)老版本Manage Jenkins -- Manage Plugin -- Advanced -- Update Site我这里使用华为开源镜像站的地址用之前先用浏览器打开一下有时候地址会变换。注意记录一下默认值下面有用我这里是https://updates.jenkins.io/update-center.json。维护方镜像中心地址Jenkins 中文社区https://updates.jenkins-zh.cn/update-center.json清华大学https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json华为开源镜像站可用https://mirrors.huaweicloud.com/jenkins/update-center.json腾讯https://mirrors.cloud.tencent.com/jenkins/updates/update-center.jsonustchttps://mirrors.ustc.edu.cn/jenkins/updates/update-center.jsonbithttps://mirror.bit.edu.cn/jenkins/updates/update-center.jsonlework可用https://cdn.jsdelivr.net/gh/lework/jenkins-update-center/updates/tencent/update-center.jsonhttps://cdn.jsdelivr.net/gh/lework/jenkins-update-center/updates/tsinghua/update-center.jsonhttps://cdn.jsdelivr.net/gh/lework/jenkins-update-center/updates/ustc/update-center.jsonhttps://cdn.jsdelivr.net/gh/lework/jenkins-update-center/updates/bit/update-center.json接着修改服务器中Jenkins的配置文件由于我们没有使用nohup所以另起一个窗口。注意第二条sed更具上面的默认值有些版本是“updates.jenkins.io/download”有些版本是“updates.jenkins-ci.org/download”。最好进去看一下完整的地址然后根据原来的地址找到国内源对应的地址国内源有时候地址结构会变化。12[rootlocalhost ~]# sed -i s/www.google.com/www.baidu.com/g .jenkins/updates/default.json[rootlocalhost ~]# sed -i s/updates.jenkins.io\/download/mirrors.huaweicloud.com\/jenkins/g .jenkins/updates/default.json回到第一个窗口重启Jenkins服务。我们这里直接CtrlC终止服务然后用nohup后台启动并添加开机启动。12345678910111213141516171819202122232425262728293031323334353637383940414243444546#添加开机启动[rootlocalhost ~]# vim jenkinsStart.sh#!/bin/bash# 导入java和jenkins的环境变量系统启动的时候无法读取配置文件的。exportJAVA_HOME/usr/local/jdk-25.0.3exportCLASSPATH.:${JAVA_HOME}/lib:${JRE_HOME}/libexportPATH${JAVA_HOME}/bin:$PATHexportJENKINS_HOME/root/.jenkinscd/rootnohupjava -jar jenkins.war --httpPort8080 nohup.out 21 [rootlocalhost ~]# chmod x jenkinsStart.sh[rootlocalhost ~]# vim /lib/systemd/system/jenkins.service[Unit]DescriptionJenkinsAfternetwork.target[Service]Typeforking#这里是启动脚本ExecStart/root/jenkinsStart.shExecReload#这里是停止脚本没有就留空ExecStopPrivateTmptrue[Install]WantedBymulti-user.target[rootlocalhost ~]# systemctl daemon-reload#启动jenkins[rootlocalhost ~]# systemctl start jenkins#开机启动jenkins[rootlocalhost ~]# systemctl enable jenkinsCreatedsymlinkfrom/etc/systemd/system/multi-user.target.wants/jenkins.service to/usr/lib/systemd/system/jenkins.service.[rootlocalhost ~]# systemctl status jenkins● jenkins.service - JenkinsLoaded: loaded (/usr/lib/systemd/system/jenkins.service; enabled; vendor preset: disabled)Active: active (running) since Fri 2026-05-29 22:25:46 CST; 14s agoMain PID: 1279 (java)CGroup:/system.slice/jenkins.service└─1279 java -jar jenkins.war --httpPort8080May 29 22:25:46 localhost.localdomain systemd[1]: Starting Jenkins...May 29 22:25:46 localhost.localdomain systemd[1]: Started Jenkins.最后网页重新登录新版本右上角设置--Plugins插件--Available plugins可用插件--搜索需要的插件进行安装老版本Manage Jenkins -- Manage Plugin --Available--搜索需要的插件进行安装。把上面推荐的插件全部安装完成并且再安装Maven IntegrationIDEA或Eclipse本地开发环境、Pipeline Maven Integration(CI/CD流水线)、Publish Over SSH通过SSH发送构建产物--jar包。注意有些时候找不到插件到“Installed Plugins”(已安装的插件)里面看一下有些安装时会被作为依赖已经安装上去了。将需要的插件安装完成后地址栏输入192.168.142.104:8080/restart重启Jenkins。注意有一些插件比较新时国内源没有及时更新就会报404错误可以在搜索后直接点击进入官方插件仓库下载.hpi文件然后使用“高级”标签页上传部署最后重启。我这里以Credentials Binding插件为例报错如下12345678910111213141516java.io.FileNotFoundException: https://mirrors.huaweicloud.com/jenkins/plugins/credentials-binding/725.ve52b_2328a_fde/credentials-binding.hpiat java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1696)at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1302)at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:223)at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1362)Caused: java.io.IOException: Failed to load https://mirrors.huaweicloud.com/jenkins/plugins/credentials-binding/725.ve52b_2328a_fde/credentials-binding.hpi to/root/.jenkins/plugins/credentials-binding.jpi.tmpat hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1377)Caused: java.io.IOException: Failed to download from https://mirrors.huaweicloud.com/jenkins/plugins/credentials-binding/725.ve52b_2328a_fde/credentials-binding.hpiat hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1404)at hudson.model.UpdateCenter$DownloadJob._run(UpdateCenter.java:2053)at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2381)at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:2027)at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545)at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:121)at java.base/java.lang.Thread.run(Thread.java:1474)安装本地插件方式Advanced settings高级设置--部署插件Deploy Plugin--选择文件--部署Deploy4部署mavenmaven是工具只要将二进制包解压即可1234567[rootlocalhost ~]# tar xvf apache-maven-3.9.15-bin.tar.gz -C /usr/local/[rootlocalhost ~]# /usr/local/apache-maven-3.9.15/bin/mvn -vApache Maven 3.9.15 (98b2cdbfdb5f1ac8781f537ea9acccaed7922349)Maven home:/usr/local/apache-maven-3.9.15Java version: 25.0.3, vendor: Oracle Corporation, runtime:/usr/local/jdk-25.0.3Default locale: en_US, platform encoding: UTF-8OS name:linux, version:3.10.0-1160.el7.x86_64, arch:amd64, family:unix5安装git1[rootlocalhost ~]# yum -y install git(4).102/103服务器安装GitLab这里我就直接跳过了详细查看CentOS服务器上docker搭建GitLab | CentOS服务器上yum/rpm搭建GitLab CE(5).105服务器安装JDK根据开发需求选择JDK的版本我这里使用二进制版本的JDK25123456789101112131415161718[rootlocalhost ~]# java -version-bash: java: 未找到命令//我的系统没有如果显示的是openjdk version ...那就是openjdk#如果存在jdk可以使用这个命令卸载自带的openjdk[rootlocalhost ~]# yum -y remove java-*#解压二进制文件[rootlocalhost ~]# tar xvf jdk-25_linux-x64_bin.tar.gz -C /usr/local/#新增环境变量文件配置环境变量[rootlocalhost ~]# vim /etc/profile.d/jdk25.shexportJAVA_HOME/usr/local/jdk-25.0.3exportCLASS_PATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jar/tools.jar:$JAVA_HOME/jre/libexportPATH$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH#加载环境变量[rootlocalhost ~]# . /etc/profile.d/jdk25.sh#测试[rootlocalhost ~]# java -versionjava version25.0.32026-04-21 LTSJava(TM) SE Runtime Environment (build 25.0.39-LTS-195)Java HotSpot(TM) 64-Bit Server VM (build 25.0.39-LTS-195, mixed mode, sharing)

相关新闻

OpenRGB:一个软件搞定所有RGB设备,终结多软件冲突的终极解决方案

OpenRGB:一个软件搞定所有RGB设备,终结多软件冲突的终极解决方案

OpenRGB:一个软件搞定所有RGB设备,终结多软件冲突的终极解决方案 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgra…

2026/7/6 4:59:24阅读更多 →
GetQzonehistory:三步实现QQ空间历史说说完整导出的Python工具

GetQzonehistory:三步实现QQ空间历史说说完整导出的Python工具

GetQzonehistory:三步实现QQ空间历史说说完整导出的Python工具 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字记忆日益重要的今天,QQ空间承载了无数人的青…

2026/7/6 4:59:24阅读更多 →
WhatsApp 多账号消息路由的设计与实现

WhatsApp 多账号消息路由的设计与实现

WhatsApp 多账号消息路由的设计与实现在 WhatsApp 运营场景中,企业通常需要同时管理多个账号以满足不同地区、业务线或客户分群的需求。随着账号数量增加,消息如何被正确路由到目标账号、如何在账号间做负载均衡、以及如何处理账号异常切换,成…

2026/7/6 4:54:24阅读更多 →
小样本统计推断:为什么t分布比正态分布更可靠

小样本统计推断:为什么t分布比正态分布更可靠

1. 项目概述:为什么小样本时代,t分布比正态分布更值得你信赖?在统计学的实际战场上,我们很少能拿到成百上千个观测值——更多时候,手头只有12份血样、8组用户访谈录音、15次A/B测试的点击数据,甚至实验室里…

2026/7/6 6:19:34阅读更多 →
家长必看!孩子用AI作业提分18%却毁掉考试?3个避坑指南

家长必看!孩子用AI作业提分18%却毁掉考试?3个避坑指南

26000名学生30个月追踪:AI作业的甜蜜陷阱,闭卷考试分数下降20%到24%,家长和老师必看我昨天看了一份研究报告,看完之后后背发凉。作业分数提高了18%,但考试成绩却下降了24%。为什么?真相是你家孩子用ChatGPT…

2026/7/6 6:19:34阅读更多 →
Camera AF 执行器校准:从 DAC 到 Lens Position 的 3 步映射原理与实战

Camera AF 执行器校准:从 DAC 到 Lens Position 的 3 步映射原理与实战

Camera AF 执行器校准:从 DAC 到 Lens Position 的 3 步映射原理与实战当手机摄像头完成对焦时,镜头位置的变化看似简单,背后却隐藏着精密的数学转换与硬件协同。本文将深入解析自动对焦(AF)系统中数字模拟转换值&…

2026/7/6 6:19:34阅读更多 →
3步彻底禁用Windows Defender:释放30%系统性能的技术方案

3步彻底禁用Windows Defender:释放30%系统性能的技术方案

3步彻底禁用Windows Defender:释放30%系统性能的技术方案 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mirrors/…

2026/7/6 6:19:34阅读更多 →
如何用C++实现跨平台语音合成:DragonianVoice语音AI实战指南

如何用C++实现跨平台语音合成:DragonianVoice语音AI实战指南

如何用C实现跨平台语音合成:DragonianVoice语音AI实战指南 【免费下载链接】MoeVoiceStudio 多个SVC/TTS的C推理库 项目地址: https://gitcode.com/gh_mirrors/mo/MoeVoiceStudio 你是否曾经想要为你的二次元角色创造独特的声音?或者希望为你的游…

2026/7/6 6:19:34阅读更多 →
如何在Windows 10/11上实现经典游戏联机:IPXWrapper终极解决方案

如何在Windows 10/11上实现经典游戏联机:IPXWrapper终极解决方案

如何在Windows 10/11上实现经典游戏联机:IPXWrapper终极解决方案 【免费下载链接】ipxwrapper 项目地址: https://gitcode.com/gh_mirrors/ip/ipxwrapper 你是否在Windows 10或Windows 11上尝试运行经典游戏时遇到了"找不到IPX协议"的错误&#x…

2026/7/6 6:14:33阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/6 4:26:20阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/6 2:48:33阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/6 0:10:35阅读更多 →
Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南

Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南

Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 技术架构先行:官方接口的合规应用 你是否曾在BP阶段手忙脚乱&#x…

2026/7/6 0:03:39阅读更多 →
多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理

多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理

多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理 【免费下载链接】mRemoteNG mRemoteNG is the next generation of mRemote, open source, tabbed, multi-protocol, remote connections manager. 项目地址: https://gitcode.com/gh_m…

2026/7/6 0:03:39阅读更多 →
COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南

COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南

COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南在数据分析和处理领域,去重统计是最基础也是最频繁使用的操作之一。当数据量达到亿级规模时,不同的去重统计方法在性能上可能产生天壤之别。本文将基于 5 亿行数据的实…

2026/7/6 0:03:39阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/6 4:45:01阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/6 4:45:01阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/6 4:45:03阅读更多 →