From f2b4525967a5ed3bff18ff1efbad6cd1a8de8eca Mon Sep 17 00:00:00 2001 From: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com> Date: Tue, 7 Apr 2026 09:50:07 +0800 Subject: [PATCH] docs: add Maven mirror config and troubleshooting guide for China developers (#233) - Add Aliyun mirror config in server/.mvn/settings.xml - Update maven-wrapper.properties to use Aliyun mirror for Maven distribution - Add detailed error messages in Makefile when backend startup fails - Add troubleshooting section in quickstart.md for China developers - Add FAQ entry for local development startup issues - Update README with link to local development guide --- Makefile | 19 ++++-- README.md | 2 + README_zh.md | 2 + docs/skillhub/en/faq.md | 71 ++++++++++++++++++++ docs/skillhub/en/quickstart.md | 33 +++++++++ docs/skillhub/faq.md | 71 ++++++++++++++++++++ docs/skillhub/quickstart.md | 33 +++++++++ server/.mvn/settings.xml | 16 +++++ server/.mvn/wrapper/maven-wrapper.properties | 2 +- 9 files changed, 244 insertions(+), 5 deletions(-) create mode 100644 server/.mvn/settings.xml diff --git a/Makefile b/Makefile index 8f262ab5..60e1f488 100644 --- a/Makefile +++ b/Makefile @@ -71,10 +71,21 @@ dev-all: ## 一键启动本地开发环境(依赖 + scanner + 后端 + 前端 $(DEV_PROCESS) start --pid-file $(DEV_SERVER_PID) --log-file $(DEV_SERVER_LOG) --cwd server -- /bin/sh -lc '$(DEV_SERVER_PREPARE) && exec env $(DEV_SERVER_SCANNER_ENV) $(DEV_SERVER_CMD)' >/dev/null; \ fi; \ done; \ - if [ "$$backend_ready" -ne 1 ]; then \ - echo "Backend failed to become ready. Check $(DEV_SERVER_LOG)"; \ - exit 1; \ - fi + if [ "$$backend_ready" -ne 1 ]; then \ + echo ""; \ + echo "Backend failed to become ready. Check $(DEV_SERVER_LOG)"; \ + echo ""; \ + echo "Common issues:"; \ + echo " 1. Maven dependency download failed (network timeout)"; \ + echo " -> Configure mirror in ~/.m2/settings.xml"; \ + echo " -> See: https://maven.aliyun.com/mvn/guide"; \ + echo " 2. Java version mismatch (requires Java 21+)"; \ + echo " -> Run: java -version"; \ + echo " 3. Port 8080 already in use"; \ + echo " -> Run: lsof -i :8080"; \ + echo ""; \ + exit 1; \ + fi @echo "Waiting for scanner on $(DEV_SCANNER_URL) ..." @scanner_ready=0; \ for i in $$(seq 1 30); do \ diff --git a/README.md b/README.md index 2edab733..e96ef1e5 100644 --- a/README.md +++ b/README.md @@ -106,6 +106,8 @@ If deployment runs into problems, clear the existing runtime home and retry. make dev-all ``` +> **For developers in China**: If Maven dependency download times out, configure Aliyun mirror. See [Local Development Guide](https://iflytek.github.io/skillhub/quickstart.html#本地开发) for details. + Then open: - Web UI: `http://localhost:3000` diff --git a/README_zh.md b/README_zh.md index 20548b05..86df8120 100644 --- a/README_zh.md +++ b/README_zh.md @@ -126,6 +126,8 @@ make dev-backend # 仅后端 make dev-web # 仅前端 ``` +> **国内开发者**:如果 Maven 依赖下载超时,需配置阿里云镜像。详见 [本地开发指南](https://iflytek.github.io/skillhub/quickstart.html#本地开发)。 + ### 常用命令 ```bash diff --git a/docs/skillhub/en/faq.md b/docs/skillhub/en/faq.md index 2aec46ff..368cc5fa 100644 --- a/docs/skillhub/en/faq.md +++ b/docs/skillhub/en/faq.md @@ -131,3 +131,74 @@ A: You can get help through the following channels: - **GitHub Issues**: https://github.com/iflytek/skillhub/issues - **Documentation**: Refer to the project README.md - **Community Discussions**: https://github.com/iflytek/skillhub/discussions + +## Q: What should I do if local development fails to start? + +A: When `make dev-all` fails to start the backend, detailed error messages will be displayed. Common issues: + +### 1. Maven dependency download failed (network timeout) + +**Symptoms**: Backend logs show `Could not transfer artifact` or connection timeout + +**Solution**: Configure Aliyun mirror + +```bash +# Copy the project's built-in mirror configuration to user directory +mkdir -p ~/.m2 +cp server/.mvn/settings.xml ~/.m2/settings.xml +``` + +Or manually create `~/.m2/settings.xml`: + +```xml + + + + + aliyun + https://maven.aliyun.com/repository/public + central + + + +``` + +Reference: [Aliyun Maven Mirror Configuration Guide](https://maven.aliyun.com/mvn/guide) + +### 2. Java version mismatch + +**Symptoms**: `Unsupported class file major version` or `java.lang.NoSuchMethodError` + +**Solution**: Install Java 21+ + +```bash +# macOS +brew install openjdk@21 + +# Verify version +java -version +``` + +### 3. Port already in use + +**Symptoms**: `Port 8080 already in use` + +**Solution**: + +```bash +# Find the process using the port +lsof -i :8080 + +# Terminate the process +kill -9 +``` + +### 4. View detailed logs + +If the above solutions don't help, check the backend logs: + +```bash +make dev-logs SERVICE=backend +# Or view directly +cat .dev/server.log +``` diff --git a/docs/skillhub/en/quickstart.md b/docs/skillhub/en/quickstart.md index 1f2c0289..f2b183b9 100644 --- a/docs/skillhub/en/quickstart.md +++ b/docs/skillhub/en/quickstart.md @@ -64,6 +64,39 @@ cd skillhub make dev-all ``` +### Notes for Developers in China + +If `make dev-all` fails to start the backend, common causes include: + +1. **Maven dependency download timeout** + + The project includes a built-in Aliyun mirror configuration (`server/.mvn/settings.xml`), but Maven does not automatically read project-level settings. You need to configure it manually: + + ```bash + # Option 1: Copy to user directory (recommended) + mkdir -p ~/.m2 + cp server/.mvn/settings.xml ~/.m2/settings.xml + + # Option 2: Specify on each build + cd server && ./mvnw -s .mvn/settings.xml package + ``` + +2. **Java version mismatch** + + SkillHub requires Java 21+: + ```bash + java -version + ``` + +3. **Port conflict** + + Check if port 8080 is in use: + ```bash + lsof -i :8080 + ``` + +For detailed troubleshooting steps, see [FAQ](faq.md#local-development-startup-failure). + ## Logging In ### Option 1: Use the Built-in Admin Account diff --git a/docs/skillhub/faq.md b/docs/skillhub/faq.md index 7768cb35..6f9abe71 100644 --- a/docs/skillhub/faq.md +++ b/docs/skillhub/faq.md @@ -131,3 +131,74 @@ A: 可以通过以下方式获取帮助: - **GitHub Issues**: https://github.com/iflytek/skillhub/issues - **文档**: 参考项目 README.md - **社区讨论**: https://github.com/iflytek/skillhub/discussions + +## Q: 本地开发启动失败怎么办? + +A: `make dev-all` 后端启动失败时,会显示详细的错误提示。常见问题: + +### 1. Maven 依赖下载失败(网络超时) + +**症状**:后端日志显示 `Could not transfer artifact` 或连接超时 + +**解决方案**:配置阿里云镜像 + +```bash +# 复制项目内置的镜像配置到用户目录 +mkdir -p ~/.m2 +cp server/.mvn/settings.xml ~/.m2/settings.xml +``` + +或手动创建 `~/.m2/settings.xml`: + +```xml + + + + + aliyun + https://maven.aliyun.com/repository/public + central + + + +``` + +参考:[阿里云 Maven 镜像配置指南](https://maven.aliyun.com/mvn/guide) + +### 2. Java 版本不匹配 + +**症状**:`Unsupported class file major version` 或 `java.lang.NoSuchMethodError` + +**解决方案**:安装 Java 21+ + +```bash +# macOS +brew install openjdk@21 + +# 验证版本 +java -version +``` + +### 3. 端口被占用 + +**症状**:`Port 8080 already in use` + +**解决方案**: + +```bash +# 查看占用端口的进程 +lsof -i :8080 + +# 终止进程 +kill -9 +``` + +### 4. 查看详细日志 + +如果以上方案无法解决,查看后端日志: + +```bash +make dev-logs SERVICE=backend +# 或直接查看 +cat .dev/server.log +``` diff --git a/docs/skillhub/quickstart.md b/docs/skillhub/quickstart.md index f913e85b..141c6fef 100644 --- a/docs/skillhub/quickstart.md +++ b/docs/skillhub/quickstart.md @@ -64,6 +64,39 @@ cd skillhub make dev-all ``` +### 国内开发者注意事项 + +如果 `make dev-all` 后端启动失败,常见原因: + +1. **Maven 依赖下载超时** + + 项目已内置阿里云镜像配置(`server/.mvn/settings.xml`),但 Maven 不会自动读取项目级配置。需要手动配置: + + ```bash + # 方式一:复制到用户目录(推荐) + mkdir -p ~/.m2 + cp server/.mvn/settings.xml ~/.m2/settings.xml + + # 方式二:每次构建时指定 + cd server && ./mvnw -s .mvn/settings.xml package + ``` + +2. **Java 版本不匹配** + + SkillHub 要求 Java 21+: + ```bash + java -version + ``` + +3. **端口冲突** + + 检查 8080 端口是否被占用: + ```bash + lsof -i :8080 + ``` + +详细的错误排查步骤,请查看 [常见问题](faq.md#本地开发启动失败)。 + ## 登录系统 ### 方式一:使用内置管理员账号 diff --git a/server/.mvn/settings.xml b/server/.mvn/settings.xml new file mode 100644 index 00000000..48462dae --- /dev/null +++ b/server/.mvn/settings.xml @@ -0,0 +1,16 @@ + + + + + + aliyun + Aliyun Maven Mirror + https://maven.aliyun.com/repository/public + central + + + + diff --git a/server/.mvn/wrapper/maven-wrapper.properties b/server/.mvn/wrapper/maven-wrapper.properties index 71ea75a7..0f16952f 100644 --- a/server/.mvn/wrapper/maven-wrapper.properties +++ b/server/.mvn/wrapper/maven-wrapper.properties @@ -1,3 +1,3 @@ wrapperVersion=3.3.4 distributionType=only-script -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.13/apache-maven-3.9.13-bin.zip +distributionUrl=https://maven.aliyun.com/repository/public/org/apache/maven/apache-maven/3.9.13/apache-maven-3.9.13-bin.zip