Skip to content

环境配置

本章节详细介绍各项目的环境配置要求和配置方法。

后端环境 (MootingBackend)

必需软件

软件版本要求用途
JDK17+Java 运行环境
Maven3.6+项目构建工具
SQL Server2022数据库

数据库配置

1. 创建数据库

sql
-- 连接到 SQL Server
-- 创建数据库
CREATE DATABASE user_system;
GO

-- 使用数据库
USE user_system;
GO

2. 配置连接

编辑 application.properties:

properties
# 数据库连接
spring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=user_system;encrypt=true;trustServerCertificate=true;
spring.datasource.username=sa
spring.datasource.password=YourPassword123

# JPA 配置
spring.jpa.database-platform=org.hibernate.dialect.SQLServerDialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

JWT 配置

properties
# JWT 密钥 (生产环境必须更换)
app.jwt.secret=your-256-bit-secret-key-for-jwt-signing-change-in-production
app.jwt.expiration-ms=86400000

安全提醒

生产环境务必更换 JWT 密钥,并通过环境变量注入,不要提交到代码仓库。

邮件服务配置 (飞书 SMTP)

properties
spring.mail.host=smtp.feishu.cn
spring.mail.port=465
spring.mail.username=no-reply@mooting.life
spring.mail.password=your-smtp-auth-code
spring.mail.properties.mail.smtp.ssl.enable=true
app.mail.from-name=Mooting

短信服务配置 (阿里云)

properties
app.sms.aliyun.access-key-id=your-access-key-id
app.sms.aliyun.access-key-secret=your-access-key-secret
app.sms.aliyun.sign-name=Mooting
app.sms.aliyun.template-code=SMS_XXXXXXXXX

环境变量方式配置

推荐使用环境变量管理敏感信息:

bash
export DB_PASSWORD=YourPassword123
export JWT_SECRET=your-256-bit-secret
export MAIL_PASSWORD=smtp-auth-code
export ALIYUN_AK_ID=access-key-id
export ALIYUN_AK_SECRET=access-key-secret

对应的 application.properties:

properties
spring.datasource.password=${DB_PASSWORD}
app.jwt.secret=${JWT_SECRET}
spring.mail.password=${MAIL_PASSWORD}
app.sms.aliyun.access-key-id=${ALIYUN_AK_ID}
app.sms.aliyun.access-key-secret=${ALIYUN_AK_SECRET}

移动应用环境 (MootingAPP)

必需软件

软件版本要求用途
Node.js18+JavaScript 运行环境
npm9+包管理器
Watchman最新文件监控 (macOS)

Android 开发环境

  1. Android Studio Hedgehog 或更高版本
  2. Android SDK 34
  3. Android NDK (可选,原生模块需要)

配置环境变量:

bash
export ANDROID_HOME=$HOME/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/platform-tools

iOS 开发环境 (macOS)

  1. Xcode 15+
  2. CocoaPods 1.14+
bash
# 安装 CocoaPods
sudo gem install cocoapods

# 安装 iOS 依赖
cd MootingAPP/ios
pod install

API 配置

编辑 src/services/api.js:

javascript
// 开发环境
const BASE_URL = 'http://localhost:8080';

// 生产环境
// const BASE_URL = 'https://api.mooting.life';

// Mock 环境 (Apifox)
// const BASE_URL = 'http://127.0.0.1:4523/m1/7728811-0-default';

腾讯云 ASR 配置

编辑 src/services/tencentCloud.js:

javascript
const config = {
  SecretId: 'your-secret-id',
  SecretKey: 'your-secret-key',
  AppId: 'your-app-id'
};

注意

腾讯云密钥不应硬编码在客户端,生产环境应通过后端代理获取临时凭证。


Android SDK 环境 (Mooting_android_demo)

必需软件

软件版本要求用途
Android StudioHedgehog+IDE
JDK17Java 环境
Android SDK34编译工具

Gradle 配置

项目使用 Gradle Kotlin DSL,版本配置在 gradle/libs.versions.toml:

toml
[versions]
agp = "8.4.0"
kotlin = "1.9.0"
coreKtx = "1.13.1"
appcompat = "1.7.0"
material = "1.12.0"

内部 Maven 仓库

项目依赖 MetaBounds 内部 Maven 仓库,配置在 settings.gradle.kts:

kotlin
dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
        maven { url = uri("https://jitpack.io") }
        maven {
            url = uri("http://maven.mbsoft.com/repository/metabounds/")
            isAllowInsecureProtocol = true
        }
    }
}

权限配置

AndroidManifest.xml 中已配置必要权限:

xml
<!-- 蓝牙权限 -->
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"/>

<!-- 位置权限 (BLE 扫描需要) -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

开发工具推荐

IDE

项目推荐 IDE备注
MootingBackendIntelliJ IDEASpring Boot 支持最佳
MootingAPPVS CodeReact Native 插件丰富
Android DemoAndroid Studio官方推荐

VS Code 插件 (React Native)

  • ES7+ React/Redux/React-Native snippets
  • Prettier - Code formatter
  • ESLint
  • React Native Tools

IntelliJ IDEA 插件

  • Lombok
  • Spring Boot Assistant
  • Database Navigator

常见问题

Q: 后端启动报数据库连接失败

检查以下配置:

  1. SQL Server 是否启动
  2. TCP/IP 协议是否启用
  3. 端口 1433 是否开放
  4. 用户名密码是否正确

Q: React Native 编译失败

bash
# 清理缓存
cd MootingAPP
npm cache clean --force
rm -rf node_modules
rm -rf android/app/build
npm install

Q: Android 模拟器无法扫描蓝牙

BLE 扫描需要真机测试,模拟器不支持蓝牙功能。

下一步

Mooting 开发者文档