From b8044c3769544f7a19f5f21c82180ac9c4b964f5 Mon Sep 17 00:00:00 2001 From: zhangjf Date: Sun, 22 Feb 2026 20:03:29 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DAssembly=E6=89=93?= =?UTF-8?q?=E5=8C=85=E4=B8=8E=E5=90=AF=E5=8A=A8=E8=84=9A=E6=9C=ACJAR?= =?UTF-8?q?=E6=9F=A5=E6=89=BE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - assembly.xml: 主JAR放到根目录,移除lib目录 - Spring Boot fat jar已包含所有依赖 - 避免依赖JAR冗余和混淆 - start.sh: 优化JAR文件查找逻辑 - 优先查找根目录: ${APP_HOME}/${APP_NAME}.jar - fallback到lib目录(向后兼容) - 添加JAR_FILE到启动日志输出 --- assembly/assembly.xml | 16 ++++++++-------- scripts/start.sh | 21 +++++++++++++++++---- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/assembly/assembly.xml b/assembly/assembly.xml index d187ce0..e80a788 100644 --- a/assembly/assembly.xml +++ b/assembly/assembly.xml @@ -48,13 +48,13 @@ - - - - lib - true - runtime + + + + ${project.build.directory}/${project.artifactId}.jar + / + ${project.artifactId}.jar 0644 - - + + diff --git a/scripts/start.sh b/scripts/start.sh index 3f24efa..776f8f3 100755 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -36,10 +36,22 @@ if [[ -z "${INSTANCE_NAME}" ]] || [[ "${INSTANCE_NAME}" == '\${APP_NAME}' ]]; th fi TENANT_ID=${TENANT_ID:-""} -# 4. JAR文件路径 -JAR_FILE=$(ls ${APP_HOME}/lib/*.jar 2>/dev/null | head -1) -if [ -z "$JAR_FILE" ]; then - echo "Error: No JAR file found in ${APP_HOME}/lib/" +# 4. JAR文件路径(优先查找根目录的主JAR,再查找lib目录) +# Spring Boot fat jar已包含所有依赖,主JAR在根目录 +JAR_FILE="${APP_HOME}/${APP_NAME}.jar" +if [ ! -f "$JAR_FILE" ]; then + # fallback: 查找lib目录(兼容旧版打包结构) + JAR_FILE=$(ls ${APP_HOME}/lib/${APP_NAME}*.jar 2>/dev/null | head -1) +fi +if [ ! -f "$JAR_FILE" ]; then + # 最后尝试: lib目录任意jar(向后兼容) + JAR_FILE=$(ls ${APP_HOME}/lib/*.jar 2>/dev/null | head -1) +fi +if [ -z "$JAR_FILE" ] || [ ! -f "$JAR_FILE" ]; then + echo "Error: No JAR file found for ${APP_NAME}" + echo " Searched: ${APP_HOME}/${APP_NAME}.jar" + echo " Searched: ${APP_HOME}/lib/${APP_NAME}*.jar" + echo " Searched: ${APP_HOME}/lib/*.jar" exit 1 fi @@ -85,6 +97,7 @@ echo "Starting ${INSTANCE_NAME}..." echo " APP_NAME: ${APP_NAME}" echo " INSTANCE_NAME: ${INSTANCE_NAME}" echo " APP_HOME: ${APP_HOME}" +echo " JAR_FILE: ${JAR_FILE}" echo " LOG_HOME: ${LOG_HOME}" echo " JAVA_OPTS: ${JAVA_OPTS}" if [ -n "${TENANT_ID}" ]; then