refactor: APP_NAME从JAR文件自动推断
- APP_NAME不再写在env.properties,而是从lib/*.jar自动推断 - env.properties只保留INSTANCE_NAME和TENANT_ID(多租户场景使用) - 所有脚本(start.sh/stop.sh/status.sh)统一从JAR文件获取APP_NAME - 避免打包后所有服务的env.properties都一样导致APP_NAME冲突
This commit is contained in:
parent
3e73b6c086
commit
dd8de5d96e
@ -4,13 +4,11 @@
|
|||||||
# ============================================
|
# ============================================
|
||||||
|
|
||||||
# --------------------------------------------
|
# --------------------------------------------
|
||||||
# 服务标识配置
|
# 实例配置(多租户模式需要修改)
|
||||||
# --------------------------------------------
|
# --------------------------------------------
|
||||||
# 服务名称(对应JAR文件名,如fund-sys)
|
|
||||||
APP_NAME=fund-sys
|
|
||||||
# 实例名称(用于区分多租户实例,如fund-sys-shared, fund-sys-vip001)
|
# 实例名称(用于区分多租户实例,如fund-sys-shared, fund-sys-vip001)
|
||||||
# 默认与APP_NAME相同,多租户模式下需要修改
|
# 默认与JAR文件名相同,多租户模式下需要修改
|
||||||
INSTANCE_NAME=${APP_NAME}
|
# INSTANCE_NAME=fund-sys
|
||||||
# 租户标识(多租户模式使用,用于Nacos元数据路由)
|
# 租户标识(多租户模式使用,用于Nacos元数据路由)
|
||||||
TENANT_ID=
|
TENANT_ID=
|
||||||
|
|
||||||
|
|||||||
@ -6,33 +6,33 @@
|
|||||||
SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
|
SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
|
||||||
APP_HOME=$(dirname "$SCRIPT_DIR")
|
APP_HOME=$(dirname "$SCRIPT_DIR")
|
||||||
|
|
||||||
# 加载环境变量配置(优先从env.properties读取)
|
# 自动从lib目录下的JAR文件推断APP_NAME
|
||||||
|
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/"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
APP_NAME=$(basename "$JAR_FILE" .jar)
|
||||||
|
|
||||||
|
# 加载环境变量配置
|
||||||
if [ -f "${APP_HOME}/conf/env.properties" ]; then
|
if [ -f "${APP_HOME}/conf/env.properties" ]; then
|
||||||
# 读取APP_NAME和INSTANCE_NAME
|
|
||||||
while IFS='=' read -r key value; do
|
while IFS='=' read -r key value; do
|
||||||
# 跳过注释和空行
|
|
||||||
[[ "$key" =~ ^#.*$ ]] && continue
|
[[ "$key" =~ ^#.*$ ]] && continue
|
||||||
[[ -z "$key" ]] && continue
|
[[ -z "$key" ]] && continue
|
||||||
# 去除前后空格
|
|
||||||
key=$(echo "$key" | xargs)
|
key=$(echo "$key" | xargs)
|
||||||
value=$(echo "$value" | xargs)
|
value=$(echo "$value" | xargs)
|
||||||
# 导出环境变量
|
# 跳过APP_NAME,因为已从JAR文件推断
|
||||||
|
[[ "$key" == "APP_NAME" ]] && continue
|
||||||
export "$key=$value"
|
export "$key=$value"
|
||||||
done < "${APP_HOME}/conf/env.properties"
|
done < "${APP_HOME}/conf/env.properties"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 服务名称(对应JAR文件名,从env.properties读取或从目录名推断)
|
|
||||||
APP_NAME=${APP_NAME:-$(basename "$APP_HOME")}
|
|
||||||
|
|
||||||
# 实例名称(用于区分多租户实例,默认与APP_NAME相同)
|
# 实例名称(用于区分多租户实例,默认与APP_NAME相同)
|
||||||
INSTANCE_NAME=${INSTANCE_NAME:-${APP_NAME}}
|
INSTANCE_NAME=${INSTANCE_NAME:-${APP_NAME}}
|
||||||
|
|
||||||
# 日志目录(使用INSTANCE_NAME区分不同实例)
|
# 日志目录(使用INSTANCE_NAME区分不同实例)
|
||||||
LOG_HOME="/datacfs/applogs/${INSTANCE_NAME}"
|
LOG_HOME="/datacfs/applogs/${INSTANCE_NAME}"
|
||||||
|
|
||||||
# JAR文件路径(使用APP_NAME找JAR)
|
|
||||||
JAR_FILE="${APP_HOME}/lib/${APP_NAME}.jar"
|
|
||||||
|
|
||||||
# PID文件路径(使用INSTANCE_NAME)
|
# PID文件路径(使用INSTANCE_NAME)
|
||||||
PID_FILE="${APP_HOME}/${INSTANCE_NAME}.pid"
|
PID_FILE="${APP_HOME}/${INSTANCE_NAME}.pid"
|
||||||
|
|
||||||
|
|||||||
@ -6,6 +6,10 @@
|
|||||||
SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
|
SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
|
||||||
APP_HOME=$(dirname "$SCRIPT_DIR")
|
APP_HOME=$(dirname "$SCRIPT_DIR")
|
||||||
|
|
||||||
|
# 自动从lib目录下的JAR文件推断APP_NAME
|
||||||
|
JAR_FILE=$(ls ${APP_HOME}/lib/*.jar 2>/dev/null | head -1)
|
||||||
|
APP_NAME=$(basename "$JAR_FILE" .jar)
|
||||||
|
|
||||||
# 加载环境变量配置
|
# 加载环境变量配置
|
||||||
if [ -f "${APP_HOME}/conf/env.properties" ]; then
|
if [ -f "${APP_HOME}/conf/env.properties" ]; then
|
||||||
while IFS='=' read -r key value; do
|
while IFS='=' read -r key value; do
|
||||||
@ -13,12 +17,12 @@ if [ -f "${APP_HOME}/conf/env.properties" ]; then
|
|||||||
[[ -z "$key" ]] && continue
|
[[ -z "$key" ]] && continue
|
||||||
key=$(echo "$key" | xargs)
|
key=$(echo "$key" | xargs)
|
||||||
value=$(echo "$value" | xargs)
|
value=$(echo "$value" | xargs)
|
||||||
|
[[ "$key" == "APP_NAME" ]] && continue
|
||||||
export "$key=$value"
|
export "$key=$value"
|
||||||
done < "${APP_HOME}/conf/env.properties"
|
done < "${APP_HOME}/conf/env.properties"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 服务名称和实例名称
|
# 实例名称
|
||||||
APP_NAME=${APP_NAME:-$(basename "$APP_HOME")}
|
|
||||||
INSTANCE_NAME=${INSTANCE_NAME:-${APP_NAME}}
|
INSTANCE_NAME=${INSTANCE_NAME:-${APP_NAME}}
|
||||||
|
|
||||||
# PID文件路径
|
# PID文件路径
|
||||||
|
|||||||
@ -6,6 +6,10 @@
|
|||||||
SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
|
SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
|
||||||
APP_HOME=$(dirname "$SCRIPT_DIR")
|
APP_HOME=$(dirname "$SCRIPT_DIR")
|
||||||
|
|
||||||
|
# 自动从lib目录下的JAR文件推断APP_NAME
|
||||||
|
JAR_FILE=$(ls ${APP_HOME}/lib/*.jar 2>/dev/null | head -1)
|
||||||
|
APP_NAME=$(basename "$JAR_FILE" .jar)
|
||||||
|
|
||||||
# 加载环境变量配置
|
# 加载环境变量配置
|
||||||
if [ -f "${APP_HOME}/conf/env.properties" ]; then
|
if [ -f "${APP_HOME}/conf/env.properties" ]; then
|
||||||
while IFS='=' read -r key value; do
|
while IFS='=' read -r key value; do
|
||||||
@ -13,12 +17,12 @@ if [ -f "${APP_HOME}/conf/env.properties" ]; then
|
|||||||
[[ -z "$key" ]] && continue
|
[[ -z "$key" ]] && continue
|
||||||
key=$(echo "$key" | xargs)
|
key=$(echo "$key" | xargs)
|
||||||
value=$(echo "$value" | xargs)
|
value=$(echo "$value" | xargs)
|
||||||
|
[[ "$key" == "APP_NAME" ]] && continue
|
||||||
export "$key=$value"
|
export "$key=$value"
|
||||||
done < "${APP_HOME}/conf/env.properties"
|
done < "${APP_HOME}/conf/env.properties"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 服务名称和实例名称
|
# 实例名称
|
||||||
APP_NAME=${APP_NAME:-$(basename "$APP_HOME")}
|
|
||||||
INSTANCE_NAME=${INSTANCE_NAME:-${APP_NAME}}
|
INSTANCE_NAME=${INSTANCE_NAME:-${APP_NAME}}
|
||||||
|
|
||||||
# PID文件路径
|
# PID文件路径
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user