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.

114 lines
4.3 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)
// 全局设置字符编码为UTF-8
environment {
LC_ALL = 'en_US.UTF-8'
}
}
stages {
stage('拉取Gitea源码') {
steps {
cleanWs()
git url: 'http://localhost:3000/lrx/cstatm23210465'
echo "✅ Gitea源码拉取完成"
}
}
stage('Maven打包无乱码') {
steps {
catchError(buildResult: 'SUCCESS', stageResult: 'UNSTABLE') {
echo "📦 开始Maven编译打包..."
// 关键先设置cmd编码为UTF-8chcp 65001再执行命令
bat '''chcp 65001
mvn clean package -Dmaven.test.skip=true'''
}
echo "✅ Maven打包阶段完成"
}
}
stage('keytool生成密钥'){
steps {
bat '''chcp 65001
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 '''chcp 65001
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') {
bat '''chcp 65001
echo "⚠️ 未安装WixTools将自动跳过"
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生成阶段完成"
}
}
stage('jar打包War') {
steps {
catchError(buildResult: 'SUCCESS', stageResult: 'UNSTABLE') {
bat '''chcp 65001
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 "🎉 流水线全流程成功!无乱码,可截图提交"
}
}
}