🚀 代码规范配置与依赖管理方案

基于 OpenClaw + Claude Code 的端到端研发自动化系统

📅 2026-03-18
👥 OpenClaw Team
📊 Version 1.0.0
🔧 ESLint / Prettier / CheckStyle
📑 目录导航

📋 方案概述

本方案为 OpenClaw + Claude Code 端到端研发自动化系统 提供完整的代码规范配置与依赖管理解决方案,覆盖 Java、TypeScript/JavaScript、Python 三种主流技术栈。

核心目标
  • 统一代码风格,提升可读性
  • 减少代码审查成本
  • 降低维护难度
  • 提高代码质量
  • 确保依赖安全与可重现构建
🛠️ 技术栈覆盖
Java 17 Spring Boot 3.2 TypeScript 5.3 React 18 Python 3.11+ FastAPI
📦 配置文件清单
  • .eslintrc.json - ESLint 配置
  • .prettierrc - Prettier 配置
  • checkstyle.xml - Java 代码检查
  • pom.xml - Maven 依赖管理
  • package.json - npm 依赖配置
  • requirements.txt - Python 依赖

🔍 ESLint 配置方案

ESLint 是 JavaScript/TypeScript 的代码检查工具,用于发现和修复代码中的问题。

核心规则配置

{
  "env": {
    "browser": true,
    "es2021": true,
    "node": true,
    "jest": true
  },
  "extends": [
    "eslint:recommended",
    "plugin:react/recommended",
    "plugin:@typescript-eslint/recommended",
    "plugin:prettier/recommended"
  ],
  "parser": "@typescript-eslint/parser",
  "plugins": [
    "react",
    "react-hooks",
    "@typescript-eslint",
    "prettier",
    "import"
  ]
}

关键规则说明

规则类别 具体规则 配置值 说明
代码格式 prettier/prettier "error" 强制执行 Prettier 格式化
React Hooks react-hooks/rules-of-hooks "error" 检查 Hooks 使用规则
TypeScript @typescript-eslint/no-unused-vars "error" 禁止未使用的变量
导入顺序 import/order "error" 规范化 import 顺序
代码质量 eqeqeq ["error", "always"] 强制使用 === 和 !==

使用命令

# 运行代码检查
npm run lint

# 自动修复问题
npm run lint:fix

# 检查并生成报告
npx eslint . --ext ts,tsx --format html -o eslint-report.html

✨ Prettier 配置方案

Prettier 是代码格式化工具,确保代码风格一致性。

核心配置

{
  "printWidth": 100,
  "tabWidth": 2,
  "useTabs": false,
  "semi": true,
  "singleQuote": true,
  "quoteProps": "as-needed",
  "jsxSingleQuote": false,
  "trailingComma": "all",
  "bracketSpacing": true,
  "arrowParens": "always",
  "endOfLine": "lf"
}

配置说明表

配置项 效果示例
printWidth 100 单行最大字符数
tabWidth 2 缩进空格数
semi true const x = 1;
singleQuote true 'hello' ✅   "hello"
trailingComma all 多行时添加尾随逗号

文件覆盖配置

"overrides": [
  {
    "files": "*.json",
    "options": { "printWidth": 120 }
  },
  {
    "files": "*.md",
    "options": { "printWidth": 120, "proseWrap": "always" }
  }
]

☕ CheckStyle 配置方案

CheckStyle 是 Java 代码质量检查工具,基于阿里巴巴 Java 开发手册和 Google Java Style Guide。

核心模块配置

<module name="Checker">
    <property name="charset" value="UTF-8"/>
    <property name="severity" value="warning"/>
    
    <!-- 文件长度检查 -->
    <module name="FileLength">
        <property name="max" value="2000"/>
    </module>
    
    <!-- 行长度检查 -->
    <module name="LineLength">
        <property name="max" value="120"/>
    </module>
    
    <module name="TreeWalker">
        <!-- 命名规范 -->
        <module name="MemberName"/>
        <module name="MethodName"/>
        <module name="ConstantName"/>
        
        <!-- 代码设计 -->
        <module name="FinalClass"/>
        <module name="HideUtilityClassConstructor"/>
        
        <!-- 复杂度指标 -->
        <module name="CyclomaticComplexity">
            <property name="max" value="15"/>
        </module>
    </module>
</module>

命名规范检查

检查项 规则模式 正例 反例
类名 ^[A-Z][a-zA-Z0-9]*$ UserService userService
方法名 ^[a-z][a-z0-9][a-zA-Z0-9_]*$ getUserById GetUserById
常量名 ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$ MAX_COUNT maxCount
包名 ^[a-z][a-z0-9]*(\.[a-z][a-z0-9]*)*$ com.openclaw.core com.OpenClaw.Core

Maven 集成

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>3.3.1</version>
    <configuration>
        <configLocation>checkstyle.xml</configLocation>
        <failsOnError>true</failsOnError>
        <consoleOutput>true</consoleOutput>
    </configuration>
    <executions>
        <execution>
            <id>validate</id>
            <phase>validate</phase>
            <goals><goal>check</goal></goals>
        </execution>
    </executions>
</plugin>

📦 Maven 依赖管理

采用多模块架构,统一版本管理,确保依赖一致性。

项目模块结构

pom.xml
父 POM
openclaw-common
openclaw-core
openclaw-api
openclaw-service
openclaw-web
openclaw-integration

核心依赖版本

依赖 版本 用途 Scope
Spring Boot 3.2.3 核心框架 compile
Spring Cloud 2023.0.0 微服务框架 compile
MyBatis-Plus 3.5.5 ORM 框架 compile
Lombok 1.18.30 代码简化 provided
Jackson 2.16.1 JSON 处理 compile
JUnit 5 5.10.1 单元测试 test

依赖管理最佳实践

📦 npm 依赖管理

前端项目依赖管理,支持 TypeScript、React、Vite 等现代技术栈。

依赖分类

类别 字段 示例 说明
生产依赖 dependencies react, axios 运行时必需
开发依赖 devDependencies typescript, vite 开发时需要
对等依赖 peerDependencies react ^18.0.0 宿主环境提供
可选依赖 optionalDependencies fsevents 平台特定

核心依赖清单

{
  "dependencies": {
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "axios": "^1.6.5",
    "antd": "^5.13.1",
    "zustand": "^4.4.7"
  },
  "devDependencies": {
    "typescript": "^5.3.3",
    "vite": "^5.0.11",
    "eslint": "^8.56.0",
    "prettier": "^3.2.4"
  }
}

版本控制策略

^ 脱字号

允许小版本升级

^1.2.3 → 1.3.0 ✓
~ 波浪号

仅允许补丁版本升级

~1.2.3 → 1.2.4 ✓
精确版本

锁定具体版本

1.2.3 → 仅 1.2.3

🐍 Python 依赖管理

使用 modern Python 工具链(uv/pip/poetry)进行依赖管理。

推荐使用 uv

uv 是由 Astral 团队用 Rust 编写的超快 Python 包管理器,比 pip 快 10-100 倍。

# 安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh

# 创建虚拟环境
uv venv

# 安装依赖
uv pip install -r requirements.txt

# 从 pyproject.toml 编译依赖
uv pip compile pyproject.toml -o requirements.txt

核心依赖清单

依赖 版本 用途
FastAPI 0.109.2 Web 框架
LangChain 0.1.4 LLM 应用框架
Pydantic 2.5.3 数据验证
SQLAlchemy 2.0.25 ORM 框架
Black 23.12.1 代码格式化
pytest 7.4.4 测试框架

pyproject.toml 配置

[tool.black]
line-length = 100
target-version = ['py311', 'py312']

[tool.mypy]
python_version = "3.11"
warn_return_any = true
disallow_untyped_defs = true

[tool.pytest.ini_options]
minversion = "7.4"
addopts = "-ra -q --cov=openclaw"
testpaths = ["tests"]

✅ 最佳实践

🎯 版本控制
  • 使用语义化版本(SemVer)
  • 在父配置中统一定义版本
  • 定期更新依赖(每月至少一次)
  • 使用锁文件确保可重现构建
🔒 依赖安全
  • 配置 Dependabot 自动更新
  • CI 中集成安全扫描
  • 定期运行 npm audit
  • 监控 CVE 漏洞数据库
🤖 自动化
  • 预提交钩子检查代码规范
  • CI 流水线集成质量检查
  • 自动生成依赖报告
  • 自动化代码格式化

避免的反模式

❌ 避免 ✅ 推荐
使用 latest 或浮动版本 锁定具体版本号
硬编码版本号在多处 在父配置中统一管理
长期不更新依赖 定期检查和更新
不提交锁文件 提交 lock 文件到版本控制
引入不必要的依赖 最小化依赖原则

🔄 CI/CD 集成

在 Jenkins Pipeline 中集成代码质量检查和依赖管理。

Jenkins Pipeline 示例

pipeline {
    agent any
    
    stages {
        stage('Code Quality') {
            parallel {
                stage('CheckStyle') {
                    steps {
                        sh 'mvn checkstyle:check'
                    }
                }
                stage('ESLint') {
                    steps {
                        sh 'npm run lint'
                    }
                }
                stage('Black') {
                    steps {
                        sh 'black --check src/'
                    }
                }
            }
        }
        
        stage('Build') {
            parallel {
                stage('Build Java') {
                    steps {
                        sh 'mvn clean package -DskipTests'
                    }
                }
                stage('Build Frontend') {
                    steps {
                        sh 'npm run build'
                    }
                }
            }
        }
        
        stage('Test') {
            steps {
                sh 'mvn test'
                sh 'npm run test'
                sh 'pytest'
            }
        }
        
        stage('Deploy') {
            when {
                branch 'main'
            }
            steps {
                sh 'kubectl apply -f k8s/deployment.yaml'
            }
        }
    }
}

GitHub Actions 工作流

name: Code Quality Check

on: [push, pull_request]

jobs:
  quality:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Setup Java
        uses: actions/setup-java@v4
        with:
          java-version: '17'
      
      - name: CheckStyle
        run: mvn checkstyle:check
      
      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: '18'
      
      - name: ESLint
        run: |
          npm install
          npm run lint
      
      - name: Setup Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.11'
      
      - name: Black Format Check
        run: |
          pip install black
          black --check src/

📊 方案总结

本方案提供了完整的代码规范配置与依赖管理解决方案,涵盖以下核心内容:

配置文件
  • .eslintrc.json
  • .prettierrc
  • checkstyle.xml
  • checkstyle-suppressions.xml
依赖配置
  • pom.xml (Maven)
  • package.json (npm)
  • requirements.txt (pip)
  • pyproject.toml (Python)
文档资料
  • README.md
  • ARCHITECTURE.md
  • CODE_STYLE_GUIDE.md
  • DEPENDENCY_MANAGEMENT.md