You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将本地Gradle项目或库引入Kotlin Multiplatform项目

问题1:如何将修改后的库项目引入到你的项目中

你想要的项目依赖方式可以通过两种正确配置实现:

方案1:子模块引入

  • 将fork的firebase-kotlin-sdk仓库复制到项目根目录后,需要在settings.gradle中同时引入外层仓库和你需要用到的子模块,仅引入外层仓库无法识别内部的功能模块:
    include("firebase-kotlin-sdk")
    include("firebase-kotlin-sdk:firebase-auth")
    // 如果auth模块依赖该仓库下的其他公共模块(比如firebase-common),需要按上述格式补充引入
    
  • 之后在你业务模块的build.gradle依赖块中,就可以使用你期望的声明方式,注意项目路径前要加冒号:
    implementation(project(":firebase-kotlin-sdk:firebase-auth"))
    

方案2:复合构建(includeBuild方式)

这种方式不需要修改你原有的依赖声明,更适合临时替换依赖的场景:

  • 在settings.gradle中添加如下配置:
    includeBuild("firebase-kotlin-sdk") {
        dependencySubstitution {
            substitute module("dev.gitlive:firebase-auth") using project(":firebase-auth")
            // 其他用到的该仓库下的模块,都按上述格式添加替换规则
        }
    }
    
  • 你原来的依赖声明implementation("dev.gitlive:firebase-auth:1.4.1-local")不需要修改,Gradle会自动将该坐标的依赖替换为本地项目构建的版本。

问题2:能否直接引入gradlew publishMavenLocal生成的jar/aar包

完全可以,有两种使用方式:

方式1:通过Maven Local仓库引用

  • 首先确认你项目的仓库配置中已经添加了mavenLocal(),并且放在所有远程仓库的最前面,避免Gradle优先拉取线上的正式版本:
    // 配置在根目录build.gradle或者settings.gradle的repositories块中
    repositories {
        mavenLocal()
        mavenCentral()
        google()
        // 其他仓库声明
    }
    
  • 确认你publish到Maven Local的版本号和依赖声明中的版本号完全一致,你可以到本地Maven仓库默认路径(用户目录下的.m2/repository/dev/gitlive/firebase-auth)下核对对应版本的包是否存在。

方式2:直接引入本地包文件

如果不想走本地仓库管理,你可以将生成的jar/aar包复制到业务模块的libs目录下,直接声明文件依赖即可:

implementation(files("libs/firebase-auth-1.4.1-local.jar"))

该方式不推荐KMP项目使用,多平台目标需要分别处理对应平台的包,管理成本更高。


常见配置不生效原因排查

  • 仅引入了firebase-kotlin-sdk外层仓库,没有引入需要用到的内部子模块
  • 使用includeBuild时没有配置依赖替换规则,Gradle仍然从远程仓库拉取对应坐标的依赖
  • mavenLocal没有放在仓库列表的最前面,或者本地发布的版本号和依赖声明的版本号不匹配

内容的提问来源于stack exchange,提问作者Nikola-Milovic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 20:39:03