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

相关推荐
CodeStride1 小时前
就像长跑配速一样,我是如何平衡代码性能与可读性的
java
弹简特1 小时前
【Java项目-企悦抽】07-用户与认证模块-实现用户注册01
java·开发语言
L歪歪君1 小时前
Apache Doris全链路性能优化实战指南:从架构设计到生产落地
java·开发语言·算法
山东点狮信息科技有限公司2 小时前
SpringBoot+VUE3,一套系统完成OA+HRM+CRM+MES+合同+项目管理 —— 深度解析点狮全业务管理平台
java·spring boot·后端
帅次2 小时前
Android 高级工程师面试:Flutter Widget 体系 近1年高频追问 20 题
android·flutter·面试·element·widget·setstate·renderobject
snow@li2 小时前
Java:Java 服务器(Web 容器 / Servlet 容器)完整工作清单
java·服务器·前端
帅次2 小时前
Android 高级工程师面试:Jetpack 核心 近1年高频追问 20 题
android·面试·协程·jetpack·stateflow·lifecycle
青山木3 小时前
Hot 100 --- 二叉树与递归
java·数据结构·算法·leetcode·深度优先
爱笑鱼3 小时前
Handler(四):Handler 卡顿怎么定位?从 Slow delivery 到 Slow dispatch
android