这类自动化部署方案最值得先看的不是功能列表,而是能不能在你自己的开发环境里稳定跑起来,并且能清晰地拆解成“代码提交 -> 自动构建 -> 自动测试 -> 自动部署”这几个可验证的环节。很多人一上来就照着教程配,结果卡在权限、路径、依赖或者触发条件上,折腾半天也跑不通。我更建议把第一次搭建拆成三步:先把 Jenkins、Maven、Git 这三个核心工具的单体环境配通,再让它们能互相调用,最后才是配置完整的流水线。下面按实际落地顺序拆一遍,重点不是“全”,而是“稳”和“可排查”。
1. 先别急着配流水线,把三个独立工具的环境跑通
自动化部署听起来复杂,但核心就是 Jenkins 作为调度中心,调用 Maven 去编译你的 Java 项目,而代码来源是 Git 仓库。所以第一步不是直接写 Jenkinsfile,而是确保每个工具在单独使用时都是正常的。
1.1 准备一台干净的 Linux 服务器作为基础环境
我一般会选一台 CentOS 7 或 Ubuntu 20.04 的服务器,配置不用太高,2核4G就足够学习和测试。生产环境根据项目复杂度再升级。关键是要有稳定的网络,并且能通过 SSH 连接。
首先,更新系统并安装基础依赖:
# CentOS 7
sudo yum update -y
sudo yum install -y wget curl vim git java-11-openjdk-devel
# Ubuntu 20.04
sudo apt update
sudo apt install -y wget curl vim git openjdk-11-jdk
这里装的是 OpenJDK 11,因为目前大部分 Java 项目对 JDK 11 兼容性最好。装完后用 java -version 验证一下。
1.2 独立安装并验证 Git 和 Maven
Git 通常系统自带,但版本可能旧,可以升级或直接用默认的。重点是要配置好 SSH 密钥,因为 Jenkins 拉取私有仓库需要它。
# 生成 SSH 密钥(如果还没有)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 将公钥添加到你的 Git 仓库托管平台(如 GitHub, GitLab, Gitee)
cat ~/.ssh/id_rsa.pub
把输出的公钥内容复制到你的 Git 平台账户的 SSH Keys 设置里。然后用 ssh -T git@github.com 测试连接是否成功(以 GitHub 为例)。
接着安装 Maven。不要用系统包管理器里可能过时的版本,直接去官网下载。
wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
tar -xzf apache-maven-3.8.6-bin.tar.gz -C /opt/
sudo ln -s /opt/apache-maven-3.8.6 /opt/maven
配置环境变量,编辑 ~/.bashrc 或 /etc/profile :
export MAVEN_HOME=/opt/maven
export PATH=$MAVEN_HOME/bin:$PATH
然后 source ~/.bashrc 并执行 mvn -v ,看到版本信息说明安装成功。
关键验证点 :此时,你应该能手动完成“克隆代码 -> Maven 编译”这个过程。找一个你的 Java 项目(或 Spring Boot 初始化项目)测试:
git clone <你的项目git地址>
cd <项目目录>
mvn clean package -DskipTests
如果能在 target 目录下看到生成的 .jar 或 .war 包,说明 Git 和 Maven 的基础链路是通的。这一步很多人跳过,后面 Jenkins 报错时根本分不清是代码问题还是工具问题。
1.3 用最稳妥的方式安装 Jenkins
Jenkins 的安装方式很多,但我更推荐用官方仓库安装,便于后续升级和管理。以 CentOS 7 为例:
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum install -y jenkins
安装后不要急着启动。先修改 Jenkins 的运行用户和端口(如果需要)。默认 Jenkins 用 jenkins 用户运行,但它的家目录可能没有你的 SSH 密钥。有两种思路:
- 将你的公钥私钥复制到
/var/lib/jenkins/.ssh/下,并确保权限正确(私钥 600,目录 700)。 - 或者,修改 Jenkins 以你的当前用户运行(适合测试环境)。修改
/etc/sysconfig/jenkins中的JENKINS_USER。
我通常选第一种,更符合生产环境的权限隔离原则。配置好密钥后,启动 Jenkins:
sudo systemctl start jenkins
sudo systemctl enable jenkins
sudo systemctl status jenkins # 查看状态
访问 http://你的服务器IP:8080 。首次启动会要求输入初始管理员密码,密码在 /var/lib/jenkins/secrets/initialAdminPassword 。安装推荐插件,创建管理员账户。
到这里,三个工具都独立可用了。 如果卡在任何一个环节,就先停下来解决,不要带着问题进入下一步。
2. 让 Jenkins 能调用 Maven 和 Git:配置与凭据管理
Jenkins 界面能打开只是第一步,它现在还是个“光杆司令”,不知道 Maven 在哪,也没有权限拉你的代码。这一步就是给 Jenkins 装配“手脚”。
2.1 全局工具配置:告诉 Jenkins Maven 和 JDK 的路径
在 Jenkins 管理后台,进入 “系统管理” -> “全局工具配置” 。
- JDK :如果系统已安装,可以取消勾选“自动安装”,在
JAVA_HOME里填写路径(如/usr/lib/jvm/java-11-openjdk)。用which java和readlink -f可以找到准确路径。更稳妥的方法是让 Jenkins 自动安装,选择 JDK 11 版本,提供 Oracle 或 OpenJDK 的下载镜像。 - Git :一般 Jenkins 插件会自动探测到系统 Git 路径。如果没找到,取消




867

被折叠的 条评论
为什么被折叠?



