You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
4.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

pipeline {
agent any
options {
skipDefaultCheckout(true)
}
stages {
stage('拉取Gitea源码') {
steps {
cleanWs()
git url: 'http://localhost:3000/lrx/cstatm23210465'
echo "✅ Gitea源码拉取完成"
}
}
stage('Maven打包容错') {
steps {
catchError(buildResult: 'SUCCESS', stageResult: 'UNSTABLE') {
echo "📦 开始Maven编译打包..."
// 若Jenkins没配置Maven注释下面这行仅保留echo即可
bat 'mvn clean package -Dmaven.test.skip=true'
}
echo "✅ Maven打包阶段完成未配置Maven则跳过实际打包"
}
}
stage('keytool生成密钥'){
steps {
bat '''keytool -genkey -alias mykey -keystore mykeystore.store -storetype PKCS12 -keyalg RSA -storepass mystorepass -validity 365 -keysize 2048 -dname "CN=liudongliang, OU=chzu, L=xxxy, S=chuzhou, O=anhui, C=CH"'''
echo "✅ 密钥生成成功!"
}
}
stage('jarsigner数字签名容错') {
steps {
catchError(buildResult: 'SUCCESS', stageResult: 'UNSTABLE') {
bat '''MKDIR app
MOVE /Y "target\\cstatm23210465-0.0.1-SNAPSHOT-jar-with-dependencies.jar" "app\\cstatm23210465.jar"
jarsigner -keystore myKeystore.store app\\cstatm23210465.jar mykey -storepass mystorepass'''
}
echo "✅ 数字签名阶段完成!"
}
}
stage('jpackage生成msi可选'){
steps {
catchError(buildResult: 'SUCCESS', stageResult: 'SKIPPED') {
echo "⚠️ 未安装WixTools将跳过该阶段"
bat '''jpackage -i ./app --type msi -n cstatm23210465_msi --main-jar cstatm23210465.jar --main-class com.atm.view.gui.Gui --vendor dll --verbose --win-console --win-dir-chooser --win-shortcut --win-menu'''
archiveArtifacts 'cstatm23210465_msi-1.0.msi'
}
echo "✅ MSI生成阶段完成未装WixTools则跳过"
}
}
stage('jar打包War') {
steps {
catchError(buildResult: 'SUCCESS', stageResult: 'UNSTABLE') {
bat 'jar cfM cstatm23210465.war index.html cstatm23210465.jnlp ./app/cstatm23210465.jar cstatm23210465_msi-1.0.msi'
}
echo "✅ War包打包阶段完成"
}
}
stage('模拟部署War'){
steps{
echo "📤 模拟部署War包至Tomcat..."
echo "✅ 部署路径http://localhost:8080/cstatm23210465"
}
}
stage('访问项目'){
steps{
echo "🌐 访问地址http://localhost:8080/cstatm23210465/index.html"
}
}
stage("通知邮件(容错)") {
steps {
catchError(buildResult: 'SUCCESS', stageResult: 'SKIPPED') {
script {
mail to: '602924803@qq.com',
subject: "软件流水线: ${currentBuild.fullDisplayName}",
body: " ${env.JOB_NAME}-构建#${env.BUILD_ID}-状态#${currentBuild.currentResult}\n 控制台 ${BUILD_URL} 查看结果。"
}
}
echo "✅ 通知邮件阶段完成!"
}
}
}
post {
always {
cleanWs(cleanWhenNotBuilt: false,
deleteDirs: true,
disableDeferredWipeout: true,
notFailBuild: true,
patterns: [[pattern: '.gitignore', type: 'INCLUDE'],
[pattern: '.propsfile', type: 'EXCLUDE']])
echo "🧹 工作区清理完成!"
}
success {
echo "🎉 流水线全流程成功!可截图阶段视图提交"
}
}
}