Files
flomo-ai/FIX_GRADLE_WARNINGS.md

138 lines
4.0 KiB
Markdown
Raw Normal View History

# Gradle 构建警告修复完成报告
## 🎉 修复成果总结
经过本次优化,我们成功解决了项目中的大部分 Gradle 构建警告:
**已完成的修复:**
- 移除了项目中重复的仓库定义
- 统一了仓库配置到 settings.gradle.kts
- 创建了符合最新语法规范的本地初始化脚本
- 项目内部已无 Convention API 警告
⚠️ **仍存在的警告:**
- 用户全局 Gradle 初始化脚本 (`C:\Users\xiaji\.gradle\init.gradle`) 中的已弃用语法警告
## 📁 新增文件说明
### 1. 本地初始化脚本
`gradle/init/init.gradle` - 符合最新 Gradle 语法规范的初始化脚本
### 2. 构建脚本
`build.ps1` - PowerShell 脚本,可使用本地初始化脚本进行构建
## 🚀 使用方法
### 方法一:使用本地初始化脚本(推荐)
```powershell
powershell -ExecutionPolicy Bypass -File .\build.ps1
```
### 方法二:直接使用 Gradle 命令
```bash
.\gradlew clean build
```
## 📊 当前状态
执行 `./gradlew clean --warning-mode=all` 后:
- 项目内部警告已全部解决 ✅
- 仅剩用户全局配置的警告(不影响项目构建)
- 构建过程正常完成 ✅
## 📝 后续建议
如需完全消除所有警告,建议:
1. 备份当前的 `C:\Users\xiaji\.gradle\init.gradle`
2. 将其中的 `url 'xxx'` 语法修改为 `url = uri('xxx')`
3. 或者删除该文件,让项目使用我们提供的本地配置
---
# 原始修复指南
## 问题分析
当前构建过程中出现两类警告:
1. **Groovy DSL 已弃用语法警告** (12个)
- 位置:用户全局 Gradle 初始化脚本 `C:\Users\xiaji\.gradle\init.gradle`
- 原因:使用了 `url 'xxx'` 语法,应改为 `url = uri('xxx')`
2. **Convention API 已弃用警告** (2个)
- 位置:项目构建配置中
- 原因:使用了已弃用的 Convention API
## 解决方案
### 1. 修复用户全局 Gradle 初始化脚本
`C:\Users\xiaji\.gradle\init.gradle` 文件中的以下语法:
```groovy
// ❌ 错误写法(已弃用)
maven { url 'https://repo.huaweicloud.com/repository/gradle/' }
// ✅ 正确写法
maven { url = uri('https://repo.huaweicloud.com/repository/gradle/') }
```
需要修改的所有位置:
- 第7行pluginManagement.repositories.maven.url
- 第8行pluginManagement.repositories.maven.url
- 第9行pluginManagement.repositories.maven.url
- 第18行dependencyResolutionManagement.repositories.maven.url
- 第19行dependencyResolutionManagement.repositories.maven.url
- 第20行dependencyResolutionManagement.repositories.maven.url
- 第31行buildscript.repositories.maven.url
- 第32行buildscript.repositories.maven.url
- 第33行buildscript.repositories.maven.url
- 第37行repositories.maven.url
- 第38行repositories.maven.url
- 第39行repositories.maven.url
### 2. 项目配置优化建议
虽然项目本身配置正确,但可以进一步优化:
#### 修改 settings.gradle.kts
```kotlin
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) // 保持现状
repositories {
google()
mavenCentral()
maven { url = uri("https://jitpack.io") }
// 移除重复的阿里云镜像,因为已在全局配置中设置
}
}
```
#### 修改 build.gradle.kts
```kotlin
allprojects {
repositories {
// 移除这些仓库定义,因为已在 settings 中统一管理
// google()
// mavenCentral()
// maven { url = uri("https://jitpack.io") }
// 阿里云镜像源也移除(由全局配置处理)
}
}
```
## 验证修复结果
执行以下命令验证警告是否消除:
```bash
./gradlew clean --warning-mode=all
```
预期结果:应该不再出现 Groovy DSL 语法警告和 Convention API 警告。
## 注意事项
1. 修改全局 init.gradle 文件会影响所有 Gradle 项目
2. 如果只希望影响当前项目,可以将镜像配置移到项目本地的 settings.gradle.kts 中
3. 建议备份原始 init.gradle 文件后再进行修改