gpt4 book ai didi

android - Gradle:将相同的模块作为依赖项添加到其他模块

转载 作者:行者123 更新时间:2023-11-30 01:26:08 25 4
gpt4 key购买 nike

我有 3 个模块(所有 3 个都是库项目):A,B,C

我想引用 B 作为 module Amodule C 的依赖项。app 模块具有 A、B 和 C 作为依赖项。

由于这是一个 Android 项目,我希望它是这样的:

模块A

//    A/build.gradle

//remaining config
compile project(':B')

//    A/settings.gradle

include ':B'

模块C

//    C/build.gradle

//remaining config
compile project(':B')

//    C/settings.gradle

include ':B'

应用

//    app/build.gradle


//remaining config
compile project(':A')
// dependecy for module B is not needed since I would get the same set of APIs from A and B
compile project(':C')

//    app/settings.gradle

include ':A',':C',':B'

我的问题是:这在内部是如何处理的。是否涉及任何代码重复。有没有更好的方法来处理这种依赖关系?

最佳答案

你可以这样做:

-root
|--build.gradle
|--settings.gradle
|--libA
|----build.gradle
|--libB
|----build.gradle
|--libC
|----build.gradle
|--app
|----build.gradle

settings.gradle中:

include ':libA',':libB',':libC', ':app'

libA/build.gradlelibB/build.gradle 中:

compile project(':B')

否则,如果任何 libA、libB、libC 是单独的项目:

  1. 使用 Maven 存储库分发您的库
  2. 在 settings.gradle 中使用外部路径

在选项 1 中,您应该使用 ma​​ven 存储库(您必须在私有(private)或公共(public) maven 存储库中发布该库)。
在这种情况下,gradle 使用包含依赖项列表的 pom 文件下载依赖项。

libA/build.gradlelibB/build.gradle 中:

compile 'myLibB:X.X.X'

在选项2中使用:

-rootApp
|--build.gradle
|--settings.gradle
|--app
|----build.gradle

-rootLibA
|--build.gradle
|--settings.gradle
|--moduleA
|----build.gradle

在项目中,您可以引用外部模块

只需使用:

rootApp/settings.gradle 中:

include ':app' 
include ':myExternalLib'
project(':myExternalLib').projectDir=new File('pathLibrary')

app/build.gradle 中:

dependencies {
compile project(':myExternalLib')
}

关注myExternalLib
您必须使用其他项目中的库路径,而不是项目的根目录
在您的情况下,路径是 rootLibA/moduleA

关于android - Gradle:将相同的模块作为依赖项添加到其他模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36403631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com