libs 目录 → Gradle 依赖管理
老写法(Java --- 手动放 jar/aar)
markdown
app/
libs/
okhttp-4.9.0.jar
gson-2.10.1.jar
custom-sdk.aar
groovy
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
}
问题在哪里
jar 文件放在 libs 目录里,没有版本可追溯性。团队协作时不知道这个 jar 是哪来的、什么版本、有没有安全漏洞。升级时手动替换文件,容易忘、容易错。aar 文件手动管理还会漏依赖的传递依赖。
新写法(Gradle 远程依赖 + maven 仓库)
kotlin
dependencies {
// 公开库 --- 全部换成远程依赖
implementation("com.squareup.okhttp3:okhttp:4.12.0")
implementation("com.google.code.gson:gson:2.10.1")
// 私有库 --- 搭私有 maven 仓库或用 GitHub Packages
implementation("com.company:custom-sdk:1.2.0")
}
// settings.gradle.kts 加私有仓库
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven { url = uri("https://maven.company.com/releases") }
}
}
一句话注意
本地 jar 迁移第一件事:确定这个 jar 的 Maven 坐标(groupId:artifactId:version)。绝大多数公开库都能在 mavenCentral 或 Google's Maven 上找到同名坐标。少数内部 SDK 或已废弃的库,建议放到内网私有 maven 仓库(Nexus、Artifactory、GitHub Packages)管理。
如果某个本地 jar 找不到远程来源且无法搭私有仓库,最低底线是给 jar 文件重命名加上版本号(如 okhttp-4.9.0.jar),并在项目文档里记录来源和引入原因。
Java Android 老项目迁移系列,持续更新中。