setup-env.sh 2.3 KB
#!/bin/bash

# SMF Core 开发环境设置脚本
# 此脚本用于设置开发环境、安装依赖和配置开发环境

# 错误时退出
set -e

echo "========================================"
echo "开始设置 SMF Core 开发环境"
echo "========================================"

# 项目根目录
PROJECT_ROOT=$(dirname "$(dirname "$0")")
cd "$PROJECT_ROOT"

echo "创建开发配置文件..."
if [ ! -f "src/main/resources/config/application-dev.yml" ]; then
  echo "创建开发配置文件 src/main/resources/config/application-dev.yml"
  mkdir -p src/main/resources/config
  cat > src/main/resources/config/application-dev.yml << 'EOF'
spring:
  profiles:
    active: dev
  datasource:
    url: jdbc:h2:mem:testdb
    driver-class-name: org.h2.Driver
    username: sa
    password:
  jpa:
    database-platform: org.hibernate.dialect.H2Dialect
    hibernate:
      ddl-auto: update
    show-sql: true
    properties:
      hibernate: 
        format_sql: true
  h2:
    console:
      enabled: true
      path: /h2-console
      settings:
        web-allow-others: false

server:
  port: 8080
  servlet:
    context-path: /smf-core

# 日志配置
logging:
  level:
    root: INFO
    com.neotel.smfcore: DEBUG
EOF
fi

echo "\n设置测试资源目录..."
mkdir -p src/test/resources
if [ ! -f "src/test/resources/application.yml" ]; then
  echo "创建测试配置文件 src/test/resources/application.yml"
  cat > src/test/resources/application.yml << 'EOF'
spring:
  profiles:
    active: test
  datasource:
    url: jdbc:h2:mem:testdb
    driver-class-name: org.h2.Driver
    username: sa
    password:
  jpa:
    database-platform: org.hibernate.dialect.H2Dialect
    hibernate:
      ddl-auto: create-drop
    show-sql: false

server:
  port: 8081
  servlet:
    context-path: /smf-core

# 测试日志配置
logging:
  level:
    root: WARN
    com.neotel.smfcore: DEBUG
EOF
fi

echo "\n安装项目依赖..."
mvn dependency:resolve

echo "\n验证项目结构..."
mvn validate

echo "\n========================================"
echo "开发环境设置完成!"
echo "========================================"
echo "可以使用 ./scripts/development/start-dev.sh 启动开发服务器"
echo "使用 H2 控制台: http://localhost:8080/smf-core/h2-console"
echo "用户名: sa, 密码: 空"