Kotlin 构建与修复¶
该命令调用 kotlin-build-resolver 代理,以最小改动增量修复 Kotlin 构建错误。
该命令的工作方式¶
- 执行诊断:运行
./gradlew build、detekt、ktlintCheck - 解析错误:按文件分组,并按严重程度排序
- 增量修复:一次修复一个错误
- 验证每个修复:每次更改后重新运行构建
- 报告摘要:显示已修复项和剩余项
使用时机¶
使用 /kotlin-build 的情况:
- ./gradlew build 因错误失败
- Kotlin 编译器报告错误
- ./gradlew detekt 报告违规
- Gradle 依赖解析失败
- 拉取了破坏构建的更改之后
执行的诊断命令¶
# プライマリビルドチェック
./gradlew build 2>&1
# 静的解析
./gradlew detekt 2>&1 || echo "detekt not configured"
./gradlew ktlintCheck 2>&1 || echo "ktlint not configured"
# 依存関係の問題
./gradlew dependencies --configuration runtimeClasspath 2>&1 | head -100
# キャッシュや依存関係メタデータが疑わしい場合のオプションの深いリフレッシュ
./gradlew build --refresh-dependencies
会话示例¶
User: /kotlin-build
Agent:
# Kotlinビルド解決
## 初期診断
```bash
$ ./gradlew build
e: src/main/kotlin/com/example/service/UserService.kt:25:15 Unresolved reference: UserRepository
e: src/main/kotlin/com/example/routes/UserRoutes.kt:42:9 Type mismatch: inferred type is String but Int was expected
e: src/main/kotlin/com/example/routes/UserRoutes.kt:58:5 'when' expression must be exhaustive
```
検出されたエラー: 3
## 修正 1: 未解決の参照
File: src/main/kotlin/com/example/service/UserService.kt:25
Error: Unresolved reference: UserRepository
Cause: importの欠落
```kotlin
// importを追加
import com.example.repository.UserRepository
```
```bash
$ ./gradlew build
# 残りエラー: 2
```
## 修正 2: 型の不一致
File: src/main/kotlin/com/example/routes/UserRoutes.kt:42
Error: Type mismatch: inferred type is String but Int was expected
```kotlin
// 変更前
val count = call.parameters["count"]
// 変更後
val count = call.parameters["count"]?.toIntOrNull()
?: return@get call.respond(HttpStatusCode.BadRequest, "Invalid count")
```
```bash
$ ./gradlew build
# 残りエラー: 1
```
## 修正 3: 非網羅的なWhen
File: src/main/kotlin/com/example/routes/UserRoutes.kt:58
Error: 'when' expression must be exhaustive
```kotlin
// 欠落ブランチを追加
when (user.role) {
Role.ADMIN -> handleAdmin(user)
Role.USER -> handleUser(user)
Role.MODERATOR -> handleModerator(user) // 追加
}
```
```bash
$ ./gradlew build
# ビルド成功!
```
## 最終検証
```bash
$ ./gradlew detekt
# 問題なし
$ ./gradlew test
# 全テスト通過
```
## サマリー
| メトリクス | 件数 |
|-----------|------|
| 修正されたビルドエラー | 3 |
| 修正されたDetekt問題 | 0 |
| 変更されたファイル | 2 |
| 残りの問題 | 0 |
ビルドステータス: PASS: SUCCESS
通常修复的错误¶
| 错误 | 典型修复 |
|---|---|
Unresolved reference: X |
添加 import 或依赖 |
Type mismatch |
修正类型转换或赋值 |
'when' must be exhaustive |
添加缺失的 sealed class 分支 |
Suspend function can only be called from coroutine |
添加 suspend 修饰符 |
Smart cast impossible |
使用局部 val 或 let |
None of the following candidates is applicable |
修正参数类型 |
Could not resolve dependency |
修正版本或添加仓库 |
修复策略¶
- 先处理构建错误 — 代码必须能够编译
- 再处理 Detekt 违规 — 修复代码质量问题
- 最后处理 ktlint 警告 — 修复格式
- 一次修复一个 — 验证每次更改
- 最小改动 — 不重构,仅修复
停止条件¶
代理在以下情况下停止并报告: - 尝试 3 次后同一错误仍然存在 - 修复引入了更多错误 - 需要架构变更 - 缺少外部依赖
相关命令¶
/kotlin-test— 构建成功后运行测试/kotlin-review— 审查代码质量verification-loop技能 — 完整验证循环
相关¶
- 代理:
agents/kotlin-build-resolver.md - 技能:
skills/kotlin-patterns/
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC