libs 目录 → Gradle 依赖管理

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 老项目迁移系列,持续更新中。

相关推荐
凤凰院凶涛QAQ6 小时前
《Java版数据结构 & 集合类剖析》Map & Set & 反射:“从哈希碰撞到红黑树转换,反射帮你扒开 HashMap 的桶数组看个究竟”
java·数据结构·算法
H.莓飛6 小时前
【数据结构】排序_OJ题(一):计数、桶与排序后的处理
java·开发语言·数据结构
wangchunyu1146 小时前
JAVA AQS与Lock实现原理(含CAS)
java·开发语言·word
w_zero_one8 小时前
算法--模拟
java·数据结构·算法
Javatutouhouduan8 小时前
阿里1658页Java面试题总结(含答案)
java·高并发·java面试·java面试题·后端开发·java程序员·java八股文
秋天的怀念_David8 小时前
算法一千零一夜 · 第十三夜 幻方,武侠世界里的数学迷宫
java·程序人生·算法
专业程序开发源8 小时前
springboot欧缇蔓月子中心管理系统82697-计算机课程设计、毕业设计
java·spring boot·后端·python·spring·django·课程设计
秋天的怀念_David9 小时前
算法一千零一夜 · 第十四夜 幻方与奇妙的二进制
java·程序人生·算法
thefool1122669 小时前
网络编程^
java
Thinker QAQ9 小时前
并发编程(十一):Shared Memory 与 Message Passing——关系与组合使用
java·python·go·并发编程·shared memory·message passing