|
|
|
|
@ -176,152 +176,157 @@ pipeline {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
stage('7. 四端并行打包') {
|
|
|
|
|
stage('7.1 CLI 打包 (JAR)') {
|
|
|
|
|
when {
|
|
|
|
|
expression { currentBuild.result == null || currentBuild.result == 'SUCCESS' || currentBuild.result == 'UNSTABLE' }
|
|
|
|
|
}
|
|
|
|
|
parallel {
|
|
|
|
|
stage('7.1 CLI 打包 (JAR)') {
|
|
|
|
|
steps {
|
|
|
|
|
echo '========== 打包 CLI 应用 (JAR) =========='
|
|
|
|
|
bat '''
|
|
|
|
|
@echo off
|
|
|
|
|
set JAVA_HOME=%JAVA_HOME%
|
|
|
|
|
echo [CLI] 开始打包...
|
|
|
|
|
|
|
|
|
|
REM 使用 CLI profile 打包
|
|
|
|
|
mvn package -Pcli -DskipTests -Dmaven.compiler.skip=true
|
|
|
|
|
|
|
|
|
|
echo [CLI] 检查生成的文件...
|
|
|
|
|
if exist target\\slms-1.0-SNAPSHOT-cli-shaded.jar (
|
|
|
|
|
echo [CLI] ✓ CLI shaded JAR 生成成功
|
|
|
|
|
for %%F in (target\\slms-1.0-SNAPSHOT-cli-shaded.jar) do echo [CLI] 大小: %%~zF bytes
|
|
|
|
|
) else (
|
|
|
|
|
echo [CLI] ⚠️ 错误: 找不到 CLI shaded JAR
|
|
|
|
|
echo [CLI] 检查 target 目录:
|
|
|
|
|
dir target\\*.jar
|
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
|
|
|
|
'''
|
|
|
|
|
echo '✓ CLI JAR 打包成功'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
stage('7.2 GUI 打包 (Swing JAR)') {
|
|
|
|
|
steps {
|
|
|
|
|
echo '========== 打包 GUI Swing 应用 (独立 JAR) =========='
|
|
|
|
|
bat '''
|
|
|
|
|
@echo off
|
|
|
|
|
set JAVA_HOME=%JAVA_HOME%
|
|
|
|
|
echo [GUI] 开始打包...
|
|
|
|
|
|
|
|
|
|
REM 使用 gui-swing profile 生成独立 JAR
|
|
|
|
|
mvn package -Pgui-swing -DskipTests -Dmaven.compiler.skip=true
|
|
|
|
|
|
|
|
|
|
echo [GUI] 检查生成的文件...
|
|
|
|
|
if exist target\\slms-1.0-SNAPSHOT-gui-swing.jar (
|
|
|
|
|
echo [GUI] ✓ GUI Swing JAR 生成成功
|
|
|
|
|
for %%F in (target\\slms-1.0-SNAPSHOT-gui-swing.jar) do echo [GUI] 大小: %%~zF bytes
|
|
|
|
|
) else (
|
|
|
|
|
echo [GUI] ⚠️ 错误: GUI Swing JAR 未找到
|
|
|
|
|
echo [GUI] 检查 target 目录内容:
|
|
|
|
|
dir target\\*.jar
|
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
|
|
|
|
'''
|
|
|
|
|
echo '✓ GUI Swing JAR 打包成功'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
stage('7.3 Web 打包 (WAR)') {
|
|
|
|
|
steps {
|
|
|
|
|
echo '========== 打包 Web 应用 (WAR) =========='
|
|
|
|
|
bat '''
|
|
|
|
|
@echo off
|
|
|
|
|
set JAVA_HOME=%JAVA_HOME%
|
|
|
|
|
echo [Web] 开始打包...
|
|
|
|
|
|
|
|
|
|
REM 使用 Web profile 打包
|
|
|
|
|
mvn package -Pweb -DskipTests -Dmaven.compiler.skip=true
|
|
|
|
|
|
|
|
|
|
echo [Web] 检查生成的文件...
|
|
|
|
|
if exist target\\slms-1.0-SNAPSHOT.war (
|
|
|
|
|
echo [Web] ✓ Web WAR 生成成功
|
|
|
|
|
for %%F in (target\\slms-1.0-SNAPSHOT.war) do echo [Web] 大小: %%~zF bytes
|
|
|
|
|
) else (
|
|
|
|
|
if exist target\\slms-1.0-SNAPSHOT.jar (
|
|
|
|
|
echo [Web] ✓ Web JAR 生成成功 (备用)
|
|
|
|
|
for %%F in (target\\slms-1.0-SNAPSHOT.jar) do echo [Web] 大小: %%~zF bytes
|
|
|
|
|
) else (
|
|
|
|
|
echo [Web] ⚠️ 错误: 找不到 Web WAR/JAR
|
|
|
|
|
echo [Web] 检查 target 目录:
|
|
|
|
|
dir target\\*.war
|
|
|
|
|
dir target\\*.jar
|
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
'''
|
|
|
|
|
echo '✓ Web WAR 打包成功'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
stage('7.4 Android Gradle 打包 (APK)') {
|
|
|
|
|
steps {
|
|
|
|
|
echo '========== 打包 Android 应用 (APK) =========='
|
|
|
|
|
bat '''
|
|
|
|
|
@echo off
|
|
|
|
|
setlocal EnableDelayedExpansion
|
|
|
|
|
set JAVA_HOME=%JAVA_HOME%
|
|
|
|
|
set ANDROID_HOME=%ANDROID_HOME%
|
|
|
|
|
|
|
|
|
|
echo 打包 Android 应用...
|
|
|
|
|
|
|
|
|
|
REM 使用 Gradle 打包 Android APK(不操作 target 目录)
|
|
|
|
|
call gradlew.bat :android:assembleDebug
|
|
|
|
|
|
|
|
|
|
REM 先列出 APK 目录看文件名
|
|
|
|
|
echo 列出 APK 目录:
|
|
|
|
|
dir android\\build\\outputs\\apk\\debug\\*.apk
|
|
|
|
|
|
|
|
|
|
REM 检查并复制 APK - 如果文件名相同就跳过
|
|
|
|
|
if exist android\\build\\outputs\\apk\\debug\\SLMS-debug.apk (
|
|
|
|
|
echo ✓ 找到 SLMS-debug.apk
|
|
|
|
|
if /I "SLMS-debug.apk" NEQ "slms-debug.apk" (
|
|
|
|
|
copy /Y android\\build\\outputs\\apk\\debug\\SLMS-debug.apk android\\build\\outputs\\apk\\debug\\slms-debug.apk >nul 2>&1
|
|
|
|
|
)
|
|
|
|
|
echo ✓ Android APK 打包完成: slms-debug.apk
|
|
|
|
|
exit /b 0
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if exist android\\build\\outputs\\apk\\debug\\android-debug.apk (
|
|
|
|
|
echo ✓ 找到 android-debug.apk
|
|
|
|
|
copy /Y android\\build\\outputs\\apk\\debug\\android-debug.apk android\\build\\outputs\\apk\\debug\\slms-debug.apk >nul 2>&1
|
|
|
|
|
echo ✓ Android APK 打包完成: slms-debug.apk
|
|
|
|
|
exit /b 0
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
REM 尝试复制第一个找到的 APK
|
|
|
|
|
echo ⚠️ 警告: 找不到预期的 APK 文件,尝试复制第一个找到的 APK
|
|
|
|
|
set APK_FOUND=0
|
|
|
|
|
for %%f in (android\\build\\outputs\\apk\\debug\\*.apk) do (
|
|
|
|
|
if !APK_FOUND! EQU 0 (
|
|
|
|
|
echo 找到 APK: %%f
|
|
|
|
|
copy /Y "%%f" android\\build\\outputs\\apk\\debug\\slms-debug.apk >nul 2>&1
|
|
|
|
|
echo ✓ 已复制 %%f 为 slms-debug.apk
|
|
|
|
|
set APK_FOUND=1
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if !APK_FOUND! EQU 0 (
|
|
|
|
|
echo ✗ 错误: 完全找不到 APK 文件
|
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
exit /b 0
|
|
|
|
|
'''
|
|
|
|
|
echo '✓ Android APK 打包成功'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
steps {
|
|
|
|
|
echo '========== 打包 CLI 应用 (JAR) =========='
|
|
|
|
|
bat '''
|
|
|
|
|
@echo off
|
|
|
|
|
set JAVA_HOME=%JAVA_HOME%
|
|
|
|
|
echo [CLI] 开始打包...
|
|
|
|
|
|
|
|
|
|
REM 使用 CLI profile 打包
|
|
|
|
|
mvn package -Pcli -DskipTests -Dmaven.compiler.skip=true
|
|
|
|
|
|
|
|
|
|
echo [CLI] 检查生成的文件...
|
|
|
|
|
if exist target\\slms-1.0-SNAPSHOT-cli-shaded.jar (
|
|
|
|
|
echo [CLI] ✓ CLI shaded JAR 生成成功
|
|
|
|
|
for %%F in (target\\slms-1.0-SNAPSHOT-cli-shaded.jar) do echo [CLI] 大小: %%~zF bytes
|
|
|
|
|
) else (
|
|
|
|
|
echo [CLI] ⚠️ 错误: 找不到 CLI shaded JAR
|
|
|
|
|
echo [CLI] 检查 target 目录:
|
|
|
|
|
dir target\\*.jar
|
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
|
|
|
|
'''
|
|
|
|
|
echo '✓ CLI JAR 打包成功'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
stage('7.2 GUI 打包 (Swing JAR)') {
|
|
|
|
|
when {
|
|
|
|
|
expression { currentBuild.result == null || currentBuild.result == 'SUCCESS' || currentBuild.result == 'UNSTABLE' }
|
|
|
|
|
}
|
|
|
|
|
steps {
|
|
|
|
|
echo '========== 打包 GUI Swing 应用 (独立 JAR) =========='
|
|
|
|
|
bat '''
|
|
|
|
|
@echo off
|
|
|
|
|
set JAVA_HOME=%JAVA_HOME%
|
|
|
|
|
echo [GUI] 开始打包...
|
|
|
|
|
|
|
|
|
|
REM 使用 gui-swing profile 生成独立 JAR
|
|
|
|
|
mvn package -Pgui-swing -DskipTests -Dmaven.compiler.skip=true
|
|
|
|
|
|
|
|
|
|
echo [GUI] 检查生成的文件...
|
|
|
|
|
if exist target\\slms-1.0-SNAPSHOT-gui-swing.jar (
|
|
|
|
|
echo [GUI] ✓ GUI Swing JAR 生成成功
|
|
|
|
|
for %%F in (target\\slms-1.0-SNAPSHOT-gui-swing.jar) do echo [GUI] 大小: %%~zF bytes
|
|
|
|
|
) else (
|
|
|
|
|
echo [GUI] ⚠️ 错误: GUI Swing JAR 未找到
|
|
|
|
|
echo [GUI] 检查 target 目录内容:
|
|
|
|
|
dir target\\*.jar
|
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
|
|
|
|
'''
|
|
|
|
|
echo '✓ GUI Swing JAR 打包成功'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
stage('7.3 Web 打包 (WAR)') {
|
|
|
|
|
when {
|
|
|
|
|
expression { currentBuild.result == null || currentBuild.result == 'SUCCESS' || currentBuild.result == 'UNSTABLE' }
|
|
|
|
|
}
|
|
|
|
|
steps {
|
|
|
|
|
echo '========== 打包 Web 应用 (WAR) =========='
|
|
|
|
|
bat '''
|
|
|
|
|
@echo off
|
|
|
|
|
set JAVA_HOME=%JAVA_HOME%
|
|
|
|
|
echo [Web] 开始打包...
|
|
|
|
|
|
|
|
|
|
REM 使用 Web profile 打包
|
|
|
|
|
mvn package -Pweb -DskipTests -Dmaven.compiler.skip=true
|
|
|
|
|
|
|
|
|
|
echo [Web] 检查生成的文件...
|
|
|
|
|
if exist target\\slms-1.0-SNAPSHOT.war (
|
|
|
|
|
echo [Web] ✓ Web WAR 生成成功
|
|
|
|
|
for %%F in (target\\slms-1.0-SNAPSHOT.war) do echo [Web] 大小: %%~zF bytes
|
|
|
|
|
) else (
|
|
|
|
|
if exist target\\slms-1.0-SNAPSHOT.jar (
|
|
|
|
|
echo [Web] ✓ Web JAR 生成成功 (备用)
|
|
|
|
|
for %%F in (target\\slms-1.0-SNAPSHOT.jar) do echo [Web] 大小: %%~zF bytes
|
|
|
|
|
) else (
|
|
|
|
|
echo [Web] ⚠️ 错误: 找不到 Web WAR/JAR
|
|
|
|
|
echo [Web] 检查 target 目录:
|
|
|
|
|
dir target\\*.war
|
|
|
|
|
dir target\\*.jar
|
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
'''
|
|
|
|
|
echo '✓ Web WAR 打包成功'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
stage('7.4 Android Gradle 打包 (APK)') {
|
|
|
|
|
when {
|
|
|
|
|
expression { currentBuild.result == null || currentBuild.result == 'SUCCESS' || currentBuild.result == 'UNSTABLE' }
|
|
|
|
|
}
|
|
|
|
|
steps {
|
|
|
|
|
echo '========== 打包 Android 应用 (APK) =========='
|
|
|
|
|
bat '''
|
|
|
|
|
@echo off
|
|
|
|
|
setlocal EnableDelayedExpansion
|
|
|
|
|
set JAVA_HOME=%JAVA_HOME%
|
|
|
|
|
set ANDROID_HOME=%ANDROID_HOME%
|
|
|
|
|
|
|
|
|
|
echo 打包 Android 应用...
|
|
|
|
|
|
|
|
|
|
REM 使用 Gradle 打包 Android APK(不操作 target 目录)
|
|
|
|
|
call gradlew.bat :android:assembleDebug
|
|
|
|
|
|
|
|
|
|
REM 先列出 APK 目录看文件名
|
|
|
|
|
echo 列出 APK 目录:
|
|
|
|
|
dir android\\build\\outputs\\apk\\debug\\*.apk
|
|
|
|
|
|
|
|
|
|
REM 检查并复制 APK - 如果文件名相同就跳过
|
|
|
|
|
if exist android\\build\\outputs\\apk\\debug\\SLMS-debug.apk (
|
|
|
|
|
echo ✓ 找到 SLMS-debug.apk
|
|
|
|
|
if /I "SLMS-debug.apk" NEQ "slms-debug.apk" (
|
|
|
|
|
copy /Y android\\build\\outputs\\apk\\debug\\SLMS-debug.apk android\\build\\outputs\\apk\\debug\\slms-debug.apk >nul 2>&1
|
|
|
|
|
)
|
|
|
|
|
echo ✓ Android APK 打包完成: slms-debug.apk
|
|
|
|
|
exit /b 0
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if exist android\\build\\outputs\\apk\\debug\\android-debug.apk (
|
|
|
|
|
echo ✓ 找到 android-debug.apk
|
|
|
|
|
copy /Y android\\build\\outputs\\apk\\debug\\android-debug.apk android\\build\\outputs\\apk\\debug\\slms-debug.apk >nul 2>&1
|
|
|
|
|
echo ✓ Android APK 打包完成: slms-debug.apk
|
|
|
|
|
exit /b 0
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
REM 尝试复制第一个找到的 APK
|
|
|
|
|
echo ⚠️ 警告: 找不到预期的 APK 文件,尝试复制第一个找到的 APK
|
|
|
|
|
set APK_FOUND=0
|
|
|
|
|
for %%f in (android\\build\\outputs\\apk\\debug\\*.apk) do (
|
|
|
|
|
if !APK_FOUND! EQU 0 (
|
|
|
|
|
echo 找到 APK: %%f
|
|
|
|
|
copy /Y "%%f" android\\build\\outputs\\apk\\debug\\slms-debug.apk >nul 2>&1
|
|
|
|
|
echo ✓ 已复制 %%f 为 slms-debug.apk
|
|
|
|
|
set APK_FOUND=1
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if !APK_FOUND! EQU 0 (
|
|
|
|
|
echo ✗ 错误: 完全找不到 APK 文件
|
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
exit /b 0
|
|
|
|
|
'''
|
|
|
|
|
echo '✓ Android APK 打包成功'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|