138 lines
4.0 KiB
Markdown
138 lines
4.0 KiB
Markdown
|
|
# 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 文件后再进行修改
|