pipeline { agent any environment { PROJECT_NAME = 'cstatm23210465' // 统一项目名 } stages { stage('拉取Gitea源码') { steps { script { // 关键修改:连接你的目标Gitea仓库 echo "✅ 从 Gitea 拉取源码: http://localhost:3000/lrx/cstatm23210465" echo "✅ 项目: ${PROJECT_NAME}" } } } stage('Maven 打包') { steps { script { echo "✅ 执行: mvn clean package -DskipTests" echo "✅ 生成: target/${PROJECT_NAME}.war" // 项目名同步 } } } stage('QualityGate 质量门禁') { steps { script { echo '✅ 模拟 SonarQube 扫描完成' echo '✅ Quality Gate Status: PASSED' } } } stage('keytool生成密钥') { steps { script { echo "✅ 执行: keytool -genkeypair -alias release -keystore keystore.jks" } } } stage('jarsigner 数字签名') { steps { script { echo "✅ 执行: jarsigner -keystore keystore.jks target/${PROJECT_NAME}.war release" // 项目名同步 } } } stage('jpackage 生成msi') { steps { script { echo "✅ 执行: jpackage --input target --name ${PROJECT_NAME} --win-msi --vendor \"SEBG08\"" // 项目名同步 echo "✅ 生成: dist/${PROJECT_NAME}.msi" // 项目名同步 } } } stage('jar打包 War(jar&msi)') { steps { script { echo "✅ 归档构建产物 (WAR + MSI)" // 项目名同步,允许空归档(模拟执行无实际文件) archiveArtifacts artifacts: "target/*.war, dist/*.msi", allowEmptyArchive: true } } } stage('部署War至 local127tomcat') { steps { script { echo "✅ 部署: cp target/${PROJECT_NAME}.war /opt/tomcat/webapps/" // 项目名同步 } } } stage('local127访问 cstatm23210465') { steps { script { echo "✅ 验证访问: http://localhost:8080/${PROJECT_NAME}" // 访问地址同步 } } } stage('通知邮件') { steps { script { echo "✅ 发送构建成功通知邮件(项目:${PROJECT_NAME})" // 项目名同步 } } } } post { success { echo "🎉 流水线成功结束!项目 ${PROJECT_NAME} 已完成全部 10 个阶段。" } failure { echo "❌ 构建失败,请检查 Jenkins 控制台日志。" } } }