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

相关推荐
yxlalm5 小时前
Spring AI+RAG 01-项目背景与技术选型
java·人工智能·spring
程序员清风6 小时前
Java 后端高并发设计:线程池、限流、熔断与降级
java·数据库·oracle
Seoyoneh6 小时前
Agentic Workflow编排架构:云客服从“被动响应”迈向“主动执行”的技术实现
java·开发语言·架构
海南java第二人6 小时前
对外 API 如何保证幂等性?插入数据 / 上传表格场景全方案汇总
java·幂等性
tryxr6 小时前
Chat2Excel 文件服务模块上传文件功能开发
java·项目·oss·easyexcel·文件服务
Tangyuewei6 小时前
Java 写 Agent:模型只是组件
java·开发语言
tianshi48517 小时前
Android 应用启动窗口(Splash Screen)的创建与销毁流程
android
脚踏实地,坚持不懈!7 小时前
ICU Calendar 实际工作问题排查手册
android
ii_best7 小时前
安卓脚本/ios开发软件按键精灵实战:自动定位弹窗广告关闭按钮坐标的通用方案
android·ios·自动化
彧azz7 小时前
Java学习语法篇:变量
java·学习