- 新增模拟器卸载应用UI测试功能及相关测试图片 - 添加本地Gradle初始化脚本和构建脚本 - 更新Gradle版本至9.0并优化仓库配置 - 修复布局文件中的重复元素和警告 - 增加构建警告修复文档 - 优化模拟器控制类功能
4.0 KiB
4.0 KiB
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 -ExecutionPolicy Bypass -File .\build.ps1
方法二:直接使用 Gradle 命令
.\gradlew clean build
📊 当前状态
执行 ./gradlew clean --warning-mode=all 后:
- 项目内部警告已全部解决 ✅
- 仅剩用户全局配置的警告(不影响项目构建)
- 构建过程正常完成 ✅
📝 后续建议
如需完全消除所有警告,建议:
- 备份当前的
C:\Users\xiaji\.gradle\init.gradle - 将其中的
url 'xxx'语法修改为url = uri('xxx') - 或者删除该文件,让项目使用我们提供的本地配置
原始修复指南
问题分析
当前构建过程中出现两类警告:
-
Groovy DSL 已弃用语法警告 (12个)
- 位置:用户全局 Gradle 初始化脚本
C:\Users\xiaji\.gradle\init.gradle - 原因:使用了
url 'xxx'语法,应改为url = uri('xxx')
- 位置:用户全局 Gradle 初始化脚本
-
Convention API 已弃用警告 (2个)
- 位置:项目构建配置中
- 原因:使用了已弃用的 Convention API
解决方案
1. 修复用户全局 Gradle 初始化脚本
将 C:\Users\xiaji\.gradle\init.gradle 文件中的以下语法:
// ❌ 错误写法(已弃用)
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
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) // 保持现状
repositories {
google()
mavenCentral()
maven { url = uri("https://jitpack.io") }
// 移除重复的阿里云镜像,因为已在全局配置中设置
}
}
修改 build.gradle.kts
allprojects {
repositories {
// 移除这些仓库定义,因为已在 settings 中统一管理
// google()
// mavenCentral()
// maven { url = uri("https://jitpack.io") }
// 阿里云镜像源也移除(由全局配置处理)
}
}
验证修复结果
执行以下命令验证警告是否消除:
./gradlew clean --warning-mode=all
预期结果:应该不再出现 Groovy DSL 语法警告和 Convention API 警告。
注意事项
- 修改全局 init.gradle 文件会影响所有 Gradle 项目
- 如果只希望影响当前项目,可以将镜像配置移到项目本地的 settings.gradle.kts 中
- 建议备份原始 init.gradle 文件后再进行修改