java_demo/JENKINS_TOOLS_CONFIG.md
wangtianqi 5db7bc7815 fix: 修复Jenkins流水线JDK安装和上下文问题
- 移除tools自动安装配置,改用环境检测
- 修复所有sh和cleanWs步骤的上下文问题
- 增加异常处理和错误恢复机制
- 支持Maven Wrapper作为fallback
- 添加Jenkins工具配置和问题排查指南
2025-06-23 20:02:56 +08:00

202 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Jenkins工具配置指南
## 🛠️ 解决JDK和Maven自动安装问题
### 问题描述
Jenkins流水线中的JDK自动安装可能因为网络问题失败需要手动配置本地工具。
## 📋 配置步骤
### 1. 配置JDK
#### 方法A使用系统已安装的JDK推荐
1. 进入Jenkins管理界面`Jenkins首页 -> Manage Jenkins -> Global Tool Configuration`
2. 找到 `JDK` 部分
3. 点击 `Add JDK`
4. 配置如下:
- **Name**: `System-JDK-17`
- **JAVA_HOME**: `/usr/lib/jvm/java-17-openjdk` Linux或检查实际路径
- **取消勾选** `Install automatically`
#### 方法B手动安装JDK
```bash
# Ubuntu/Debian
sudo apt update
sudo apt install openjdk-17-jdk
# CentOS/RHEL
sudo yum install java-17-openjdk-devel
# 查找JDK安装路径
sudo find /usr -name "java-17-openjdk*" -type d 2>/dev/null
```
### 2. 配置Maven
#### 方法A使用系统已安装的Maven
1.`Global Tool Configuration` 中找到 `Maven` 部分
2. 点击 `Add Maven`
3. 配置如下:
- **Name**: `System-Maven-3.9`
- **MAVEN_HOME**: `/usr/share/maven` 或实际路径
- **取消勾选** `Install automatically`
#### 方法B手动安装Maven
```bash
# 下载并安装Maven
cd /opt
sudo wget https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz
sudo tar xzf apache-maven-3.9.6-bin.tar.gz
sudo ln -s apache-maven-3.9.6 maven
# 配置环境变量
echo 'export MAVEN_HOME=/opt/maven' | sudo tee -a /etc/environment
echo 'export PATH=$PATH:$MAVEN_HOME/bin' | sudo tee -a /etc/environment
```
### 3. 验证安装
在Jenkins节点上执行以下命令验证
```bash
# 验证Java
java -version
javac -version
# 验证Maven
mvn -version
# 查看环境变量
echo $JAVA_HOME
echo $MAVEN_HOME
```
## 🔧 修改流水线配置
### 当前修复方案
我们已经修改了`Jenkinsfile`,使其:
1. **移除tools配置**不再依赖自动安装的JDK和Maven
2. **使用动态检测**流水线会自动检测可用的Java和Maven
3. **支持Maven Wrapper**如果Maven不可用自动使用`./mvnw`
4. **增强错误处理**所有sh命令都包含在script块中具有异常处理
### 关键改进点
#### 1. 环境检测
```groovy
stage('环境设置') {
steps {
script {
// 检测并设置Java环境
try {
sh 'java -version'
echo '✅ Java环境检测成功'
} catch (Exception e) {
echo '⚠️ 使用系统默认Java环境'
}
// 检测并设置Maven环境
try {
sh 'mvn -version'
echo '✅ Maven环境检测成功'
} catch (Exception e) {
echo '⚠️ Maven未检测到使用./mvnw'
env.MVN_CMD = './mvnw'
}
}
}
}
```
#### 2. 动态Maven命令
```groovy
sh "${env.MVN_CMD} clean compile -DskipTests=true"
```
#### 3. 增强的错误处理
```groovy
post {
cleanup {
script {
try {
cleanWs()
} catch (Exception e) {
echo "⚠️ 工作空间清理失败: ${e.getMessage()}"
}
}
}
}
```
## 🚀 部署新版本
### 1. 提交修改
```bash
cd /path/to/java_demo
git add Jenkinsfile JENKINS_TOOLS_CONFIG.md
git commit -m "fix: 修复Jenkins流水线JDK安装和上下文问题"
git push origin main
```
### 2. 重新构建
1. 进入Jenkins项目页面
2. 点击 `Build Now`
3. 查看构建日志,验证修复效果
## 🔍 常见问题排查
### 问题1Java命令找不到
```bash
# 检查Java安装
which java
java -version
# 如果没有安装OpenJDK 17
sudo apt install openjdk-17-jdk
```
### 问题2Maven命令找不到
```bash
# 检查Maven安装
which mvn
mvn -version
# 使用项目自带的Maven Wrapper
./mvnw -version
```
### 问题3权限问题
```bash
# 确保Jenkins用户有执行权限
sudo usermod -aG docker jenkins
sudo systemctl restart jenkins
```
### 问题4网络问题
```bash
# 配置Maven镜像加速
vi ~/.m2/settings.xml
# 添加阿里云镜像配置
```
## 📝 后续优化建议
1. **配置Maven镜像**:使用阿里云或其他国内镜像加速依赖下载
2. **缓存策略**配置Jenkins工作空间缓存减少重复下载
3. **通知集成**:集成钉钉、邮件等通知系统
4. **监控告警**:配置应用监控和告警机制
## 🎯 验证检查清单
- [ ] Jenkins节点已安装JDK 17
- [ ] Jenkins节点已安装Maven 3.9+
- [ ] Global Tool Configuration已正确配置
- [ ] 流水线能够成功检出代码
- [ ] 流水线能够成功编译项目
- [ ] 流水线能够成功运行测试
- [ ] 流水线能够成功构建Docker镜像
- [ ] 流水线能够成功部署到目标服务器
- [ ] 应用健康检查正常
按照以上步骤配置后Jenkins流水线应该能够正常运行。如果仍有问题请检查具体的错误日志。