为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 gradle 多项目存储库作为 git 子模块包含在另一个 gradle 项目中

如何将 gradle 多项目存储库作为 git 子模块包含在另一个 gradle 项目中

繁星点点滴滴 2023-07-19 10:54:09
我正在尝试将 Gradle 多项目存储库作为 git 子模块导入到另一个 Gradle 项目中。这是多项目存储库的结构:MyLibrary- lib-api  - api-config  - api-repository- lib-impl  - impl-config  - impl-repository在 Gradle 项目中MyLibrary,有几个模块依赖于该项目中的其他模块。例如,lib-api:api-repository具有以下依赖关系:implementation project(':lib-api:api-config')(下面的模块lib-impl还包含各自的 api 作为依赖项)到目前为止一切正常,我可以构建、运行和测试lib-impl.现在我尝试将项目导入到另一个项目中我用来git submodule add添加MyLibrary到MyProject. 这是现在的结构:MyProject- MyLibrary  - lib-api    - api-config    - api-repository  - lib-impl    - impl-config    - impl-repository- api- impl为了能够使用 下的模块MyLibrary,我将settings.gradle文件编辑MyProject为如下所示:rootProject.name = 'MyProject'include 'api'include 'impl'include 'mylibrary'include 'mylibrary:lib-api'include 'mylibrary:lib-impl'include 'mylibrary:lib-api:api-config'include 'mylibrary:lib-api:api-repository'include 'mylibrary:lib-impl:impl-config'include 'mylibrary:lib-impl:impl-repository'问题现在,下面的模块MyLibrary属于根项目MyProject,其中的所有内部依赖项都MyLibrary需要以 为前缀:mylibrary。但这仅适用于MyLibrary当前是另一个项目的子模块的情况。为了构建MyProject,我需要更改内部的依赖关系MyLibrary:implementation project(':lib-api:api-config')implementation project(':lib-api:api-repository')对此:implementation project(':mylibrary:lib-api:api-config')implementation project(':mylibrary:lib-api:api-repository')但是,:mylibrary不需要存在即可MyLibrary自行成功编译(即,如果MyLibrary是根项目)。MyLibrary但要作为子模块工作,需要进行此更改。这曾经不是一个大问题,因为我总是可以拉出子模块MyLibrary并编辑必要的build.gradle文件。MyLibrary然而,我现在开始尝试设置持续集成,每当我尝试构建时,我都会收到有关这些导入在内部无效的错误,MyProject因为 CI 总是直接从 git 存储库获取代码。我觉得如果以下声明是有效的,它可以解决我的问题:implementation project(':mylibrary:lib-api:api-config').ifNotPresent(':lib-api:api-config')预先感谢您的任何帮助
查看完整描述

1 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

经过一次精彩的发现后,我意识到文件中允许使用 java 代码build.gradle,所以我很自然地这样做了:


dependencies {

    if (rootProject.getName().equals("MyLibrary")) {

        implementation project(':lib-api:api-config')

    } else {

        implementation project(':mylibrary:lib-api:api-config')

    }

}


查看完整回答
反对 回复 2023-07-19
  • 1 回答
  • 0 关注
  • 80 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信