Files
integral-shop/start-backend.sh

70 lines
1.9 KiB
Bash
Raw Normal View History

#!/bin/bash
# ============================================
# 启动 Backend APISpring Boot, dev profile
# 端口: 20600 MySQL: 127.0.0.1:3306/java_dev
# ============================================
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
cd "$SCRIPT_DIR/backend"
echo "📦 Working dir: $(pwd)"
# ── 自动定位 Java ──────────────────────────
find_java() {
# 1. 系统 java
if /usr/libexec/java_home &>/dev/null; then
echo "$(/usr/libexec/java_home)/bin/java"
return
fi
# 2. Homebrew (Apple Silicon)
for p in /opt/homebrew/opt/openjdk*/bin/java /opt/homebrew/opt/openjdk/bin/java; do
[ -x "$p" ] && echo "$p" && return
done
# 3. Homebrew (Intel)
for p in /usr/local/opt/openjdk*/bin/java /usr/local/opt/openjdk/bin/java; do
[ -x "$p" ] && echo "$p" && return
done
# 4. SDKMAN
[ -n "$SDKMAN_DIR" ] && ls "$SDKMAN_DIR/candidates/java/current/bin/java" 2>/dev/null && \
echo "$SDKMAN_DIR/candidates/java/current/bin/java" && return
# 5. PATH排除 macOS 占位符 /usr/bin/java
local j
j=$(command -v java 2>/dev/null)
if [ -n "$j" ]; then
# 检测是否为 macOS 占位符(会输出 Unable to locate
if "$j" -version 2>&1 | grep -q "Unable to locate"; then
: # 是占位符,跳过
else
echo "$j" && return
fi
fi
echo ""
}
JAVA_BIN=$(find_java)
if [ -z "$JAVA_BIN" ]; then
echo ""
echo "❌ 未找到 Java 运行环境。请先安装 JDK 11"
echo " brew install openjdk@11"
echo " 然后按照提示设置 JAVA_HOME 后重试。"
exit 1
fi
JAVA_VER=$("$JAVA_BIN" -version 2>&1 | head -1)
echo "☕ Java: $JAVA_BIN"
echo " 版本: $JAVA_VER"
echo ""
export JAVA_HOME="$(dirname $(dirname $JAVA_BIN))"
echo "🚀 Starting crmeb-admin with profile=dev ..."
echo ""
./mvnw spring-boot:run \
-pl crmeb-admin \
-am \
-DskipTests \
-Dspring-boot.run.profiles=dev \
2>&1