在 Debian 上使用 Jenkins 构建与部署 JSP 项目的实践指南
一 环境准备与安装
sudo apt update && sudo apt install -y openjdk-11-jdkjava -versioncurl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/nullecho "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list > /devrefsudo apt update && sudo apt install -y jenkinssudo systemctl enable --now jenkinssudo cat /var/lib/jenkins/secrets/initialAdminPasswordhttp://<服务器IP>:8080,完成解锁与插件安装sudo apt install -y tomcat9 tomcat9-adminhttp://<服务器IP>:8080/manager/html(需配置用户与权限)sudo apt install -y maven gitsudo ufw allow 8080二 创建 Jenkins 任务与流水线
pipeline {
agent any
tools {
maven 'Maven-3' // 在“全局工具配置”中预先配置
jdk 'OpenJDK-11'
}
environment {
// 建议使用 Jenkins 凭据 ID(Credentials Binding)
TOMCAT_URL = 'http://localhost:8080/manager/text'
TOMCAT_USER = credentials('tomcat-manager-user')
TOMCAT_PASS = credentials('tomcat-manager-pass')
APP_NAME = 'myapp'
WAR_PATH = "target/${APP_NAME}.war"
DEPLOY_CONTEXT = "/${APP_NAME}"
}
stages {
stage('Checkout') {
steps { git branch: 'main', url: 'https://github.com/your-org/your-jsp-app.git' }
}
stage('Build') {
steps {
sh 'mvn -B clean package -DskipTests'
archiveArtifacts artifacts: env.WAR_PATH, fingerprint: true
}
}
stage('Deploy to Tomcat') {
steps {
sh '''
curl --upload-file "${WAR_PATH}" \
--user "${TOMCAT_USER}:${TOMCAT_PASS}" \
"${TOMCAT_URL}/deploy?path=${DEPLOY_CONTEXT}&update=true"
'''
}
}
}
post {
success { echo "Deployed ${APP_NAME} to ${TOMCAT_URL}${DEPLOY_CONTEXT}" }
failure { echo "Build or deploy failed." }
}
}
说明:
sh 'cp ${WAR_PATH} /var/lib/tomcat9/webapps/${APP_NAME}.war && systemctl reload tomcat9'(需赋予 jenkins 用户相应目录权限)三 Tomcat 与权限配置
<tomcat-users>
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<user username="deployer" password="StrongPass!23" roles="manager-script,manager-gui"/>
</tomcat-users>
修改后重启 Tomcat:sudo systemctl restart tomcat9sudo chown -R tomcat:tomcat /var/lib/tomcat9/webapps && sudo usermod -aG tomcat jenkins四 触发与通知优化
http://<JENKINS_URL>/github-webhook/(注意公网可达与 CSRF 配置)Archive the artifacts)、发布测试报告(如 JUnit)、设置 质量阈值 与 通知(邮件、企业微信、钉钉等)五 常见问题与排查
HTTP_PORT 后重启:sudo systemctl restart jenkinsjava -version 输出为 OpenJDK 11;若 Jenkins 找不到 java,建立软链或正确设置 JAVA_HOME