离线环境下Gradle无法找到Android Application插件的求助
解决Gradle无法从内网Artifactory找到Android插件的问题
1. 修正插件仓库配置位置
Gradle插件的解析逻辑独立于项目依赖,必须在**settings.gradle(或settings.gradle.kts)**的pluginManagement块中配置内网仓库,而非仅在build.gradle的repositories中配置。
修改根目录的settings.gradle文件:
pluginManagement { repositories { maven { url "https://my.artifactory/my-repo/gradle" // 若仓库需要认证,添加以下配置 credentials { username = "你的Artifactory用户名" password = "你的Artifactory密码" } } // 注释掉外网插件仓库,避免Gradle尝试访问网络 // gradlePluginPortal() } } rootProject.name = "你的项目名称"
2. 确认Artifactory的文件完整性与仓库配置
- 检查文件完整性:本地
~/.gradle/caches/modules-2/files-2.1/com.android.application/com.android.application.gradle.plugin/8.2.1目录下,除pom文件外通常还有对应jar文件。需确保该jar文件也已上传到Artifactory的同一hash子目录中,缺失jar会导致插件解析失败。 - 验证仓库布局:确认Artifactory的
my-repo仓库类型为Maven仓库,且使用默认Maven 2布局,保证Gradle能按group/name/version的路径规则找到插件文件。
3. 验证仓库访问权限
用curl命令测试能否正常访问插件pom文件,确认网络连通性与权限:
curl -u 用户名:密码 https://my.artifactory/my-repo/gradle/com.android.application/com.android.application.gradle.plugin/8.2.1/<你的hash值>/com.android.application.gradle.plugin-8.2.1.pom
若能成功下载pom文件,说明仓库配置无问题;若无法下载,先排查Artifactory的权限设置或路径是否正确。
4. 清理本地Gradle缓存(可选)
若本地缓存存在旧的无效记录,可删除项目根目录下的.gradle文件夹及用户目录的~/.gradle/caches目录,再重新执行构建:
rm -rf .gradle ~/.gradle/caches ./gradlew build
内容的提问来源于stack exchange,提问作者Daniel Walker
相关产品推荐
相关产品推荐

