mirror of
https://github.com/BgaSol/sol-cloud
synced 2026-05-06 08:08:30 +00:00
feat(build): Enhance build script with colored output and modular structure for backend and frontend
This commit is contained in:
parent
31049fd589
commit
cb69126402
1 changed files with 92 additions and 25 deletions
117
build.sh
117
build.sh
|
|
@ -2,44 +2,111 @@
|
|||
|
||||
set -e
|
||||
|
||||
# 后端打包
|
||||
echo "正在打包后端..."
|
||||
# ANSI 颜色
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
RED='\033[0;31m'
|
||||
RESET='\033[0m'
|
||||
|
||||
# 打印函数
|
||||
print_info() {
|
||||
echo -e "${BLUE}📘 $1${RESET}"
|
||||
}
|
||||
|
||||
print_step() {
|
||||
echo -e "\n${YELLOW}🚀 $1${RESET}"
|
||||
}
|
||||
|
||||
print_success() {
|
||||
echo -e "${GREEN}✅ $1${RESET}"
|
||||
}
|
||||
|
||||
print_error() {
|
||||
echo -e "${RED}❌ $1${RESET}"
|
||||
}
|
||||
|
||||
print_divider() {
|
||||
echo -e "${YELLOW}----------------------------------------${RESET}"
|
||||
}
|
||||
|
||||
# 模块配置
|
||||
BACKEND_MODULES=(
|
||||
"gateway-9527"
|
||||
"web-system-8081"
|
||||
"web-file-8082"
|
||||
)
|
||||
|
||||
# 后端构建阶段
|
||||
print_divider
|
||||
print_step "开始后端构建 🏗️"
|
||||
|
||||
cd cloud
|
||||
export MAVEN_OPTS="--add-opens=java.base/java.lang=ALL-UNNAMED"
|
||||
print_info "🔨 执行 Maven 构建..."
|
||||
mvn clean package -DskipTests
|
||||
cd ..
|
||||
|
||||
# 复制后端构建结果
|
||||
echo "准备复制后端构建结果..."
|
||||
SERVER_OUTPUT_DIR=docker/output/server
|
||||
rm -rf $SERVER_OUTPUT_DIR
|
||||
print_success "🎉 后端构建成功!"
|
||||
|
||||
mkdir -p $SERVER_OUTPUT_DIR/gateway-9527
|
||||
cp cloud/gateway-9527/target/*.jar $SERVER_OUTPUT_DIR/gateway-9527/app.jar
|
||||
# 清理输出目录
|
||||
SERVER_OUTPUT_DIR="docker/output/server"
|
||||
print_info "🧹 清理后端输出目录..."
|
||||
rm -rf "${SERVER_OUTPUT_DIR}"
|
||||
mkdir -p "${SERVER_OUTPUT_DIR}"
|
||||
|
||||
mkdir -p $SERVER_OUTPUT_DIR/web-system-8081/classes
|
||||
rsync -av --exclude='com/bgasol/**' cloud/web/web-system-8081/target/classes/ $SERVER_OUTPUT_DIR/web-system-8081/classes/
|
||||
cp cloud/web/web-system-8081/target/*.jar $SERVER_OUTPUT_DIR/web-system-8081/app.jar
|
||||
# 拷贝构建产物
|
||||
copy_backend_module() {
|
||||
local module=$1
|
||||
local module_dir="cloud/web/${module}"
|
||||
[[ "${module}" == "gateway-9527" ]] && module_dir="cloud/${module}"
|
||||
|
||||
mkdir -p $SERVER_OUTPUT_DIR/web-file-8082/classes
|
||||
rsync -av --exclude='com/bgasol/**' cloud/web/web-file-8082/target/classes/ $SERVER_OUTPUT_DIR/web-file-8082/classes/
|
||||
cp cloud/web/web-file-8082/target/*.jar $SERVER_OUTPUT_DIR/web-file-8082/app.jar
|
||||
local output_dir="${SERVER_OUTPUT_DIR}/${module}"
|
||||
mkdir -p "${output_dir}/classes"
|
||||
|
||||
print_info "📦 处理模块:${module}"
|
||||
|
||||
rsync -a --exclude='com/bgasol/**' "${module_dir}/target/classes/" "${output_dir}/classes/"
|
||||
cp "${module_dir}/target/"*.jar "${output_dir}/app.jar"
|
||||
|
||||
print_success "📁 模块 ${module} 输出完成 → ${output_dir}"
|
||||
}
|
||||
|
||||
print_step "📂 开始复制后端构建产物..."
|
||||
for module in "${BACKEND_MODULES[@]}"; do
|
||||
copy_backend_module "${module}"
|
||||
done
|
||||
|
||||
print_success "🏁 后端构建产物整理完毕"
|
||||
|
||||
# 前端构建阶段
|
||||
print_divider
|
||||
print_step "开始前端构建 🌐"
|
||||
|
||||
# 前端打包
|
||||
echo "正在打包前端..."
|
||||
cd client
|
||||
print_info "📦 安装依赖 (npm ci)..."
|
||||
npm ci
|
||||
|
||||
print_info "🧱 执行构建 (npm run build)..."
|
||||
npm run build
|
||||
cd ..
|
||||
|
||||
# 复制前端构建结果
|
||||
echo "准备复制前端构建结果..."
|
||||
FRONTEND_OUTPUT_DIR=docker/output/client
|
||||
rm -rf $FRONTEND_OUTPUT_DIR
|
||||
mkdir -p $FRONTEND_OUTPUT_DIR
|
||||
print_success "🎊 前端构建完成"
|
||||
|
||||
cp -r client/dist/* $FRONTEND_OUTPUT_DIR/
|
||||
# 前端构建产物复制
|
||||
FRONTEND_OUTPUT_DIR="docker/output/client"
|
||||
print_info "🧹 清理前端输出目录..."
|
||||
rm -rf "${FRONTEND_OUTPUT_DIR}"
|
||||
mkdir -p "${FRONTEND_OUTPUT_DIR}"
|
||||
|
||||
echo "构建完成,输出目录:"
|
||||
echo "后端:$SERVER_OUTPUT_DIR"
|
||||
echo "前端:$FRONTEND_OUTPUT_DIR"
|
||||
print_info "📂 拷贝前端构建结果..."
|
||||
cp -r client/dist/* "${FRONTEND_OUTPUT_DIR}/"
|
||||
|
||||
print_success "📁 前端输出完成 → ${FRONTEND_OUTPUT_DIR}"
|
||||
|
||||
# 完整构建成功
|
||||
print_divider
|
||||
echo -e "${GREEN}🎉🎉🎉 全部构建完成!${RESET}"
|
||||
echo -e "🔧 后端输出目录: ${SERVER_OUTPUT_DIR}"
|
||||
echo -e "💻 前端输出目录: ${FRONTEND_OUTPUT_DIR}"
|
||||
print_divider
|
||||
|
|
|
|||
Loading…
Reference in a new issue