hy-app-monitor/localbox/build_local_backend.sh
2026-05-17 14:08:31 +08:00

106 lines
2.3 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
# shellcheck disable=SC1091
source "$SCRIPT_DIR/common.sh"
load_local_env
MAVEN_REPO_LOCAL="${MAVEN_REPO_LOCAL:-$ROOT_DIR/var/local-maven-repo}"
JAVA_MAVEN_THREADS="${JAVA_MAVEN_THREADS:-1C}"
INSTALL_PRIVATE_SCRIPT="$SCRIPT_DIR/install_private_maven.py"
usage() {
cat <<'EOF'
用法:
./build_local_backend.sh # 构建全部 Java 后端 jar需要 JDK 17
./build_local_backend.sh auth live # 只构建指定服务
EOF
}
all_java_services() {
cat <<'EOF'
auth
console
external
gateway
live
order
other
scheduling
visual-monitor
wallet
EOF
}
module_for_service() {
case "$1" in
gateway) echo "rc-gateway" ;;
auth) echo "rc-auth" ;;
external) echo "rc-service/rc-service-external/external-start" ;;
other) echo "rc-service/rc-service-other/other-start" ;;
live) echo "rc-service/rc-service-live/live-start" ;;
order) echo "rc-service/rc-service-order/order-start" ;;
wallet) echo "rc-service/rc-service-wallet/wallet-start" ;;
console) echo "rc-service/rc-service-console/console-start" ;;
visual-monitor) echo "rc-visual/visual-monitor" ;;
scheduling) echo "rc-scheduling" ;;
*)
return 1
;;
esac
}
select_services() {
if [ "$#" -eq 0 ]; then
all_java_services
return 0
fi
for service in "$@"; do
if ! module_for_service "$service" >/dev/null; then
echo "unknown java service: $service" >&2
usage >&2
exit 1
fi
printf '%s\n' "$service"
done
}
mkdir -p "$MAVEN_REPO_LOCAL"
require_java_17
python3 "$INSTALL_PRIVATE_SCRIPT" \
--source-root "$JAVA_REPO_DIR/maven_private" \
--maven-repo-local "$MAVEN_REPO_LOCAL"
SELECTED_SERVICES=()
while IFS= read -r service; do
[ -n "$service" ] || continue
SELECTED_SERVICES+=("$service")
done <<EOF
$(select_services "$@")
EOF
MODULES=()
for service in "${SELECTED_SERVICES[@]}"; do
MODULES+=("$(module_for_service "$service")")
done
MODULE_LIST="$(IFS=,; echo "${MODULES[*]}")"
echo "building java services: ${SELECTED_SERVICES[*]}"
echo "maven reactor threads: $JAVA_MAVEN_THREADS"
mvn \
-T "$JAVA_MAVEN_THREADS" \
-P local \
-Dmaven.repo.local="$MAVEN_REPO_LOCAL" \
-DskipTests \
-Dmaven.test.skip=true \
package \
-pl "$MODULE_LIST" \
-am \
-f "$JAVA_REPO_DIR/pom.xml"