首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分级多项目、多根项目和依赖项

分级多项目、多根项目和依赖项
EN

Stack Overflow用户
提问于 2016-02-23 09:16:54
回答 2查看 2.1K关注 0票数 2

是否可以从我的主根项目中引用(包括)另一个gradle根项目及其子项目?

示例:我目前有2个gradle android多项目,如下所示:

代码语言:javascript
复制
    rootA
        |--- android_lib_A1
        |--- android_lib_A2
        |--- androidapp_A

    rootB
        |--- android_lib_B1
        |--- android_lib_B2
        |--- androidapp_B

如何将gradle项目android_lib_B1适当地包含到rootA中以便在androidapp_A中使用它?

我目前面临的问题如下:

  • 当包含在rootB,更具体地说,allprojects{}subprojects{}指令中时,不读取allprojects{}级构建
  • 例如,当rootB依赖于android_lib_B2时,不会读取构建失败的android_lib_B2级别设置,但根据我所读到的内容,这似乎是正常行为。

我可以通过将android_lib_B1发布到本地maven存储库来使其工作,但我希望能够将其全部编译在一起,而不需要额外的发布任务。

我已经看到gradle的ProjectDescriptor具有parentchildren属性,这是可行的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-23 09:33:43

可以使用以下方法链接项目中的外部模块

1)在您的项目rootA/settings.gradle

代码语言:javascript
复制
include ':android_lib_A1',':android_lib_A2',':androidapp_A' ':android_lib_B1'
project(':android_lib_B1').projectDir = new File("/path-to-project/rootB/android_lib_B1")

2)在build.gradle中添加androidapp_A模块的依赖项

代码语言:javascript
复制
dependencies {
    compile project(':android_lib_B1')
}

注意了。

通过这种方式,您将能够在build.gradle中读取android_lib_B1,而不能读取rootB中的脚本。这意味着,如果在rootB中定义了一些任务或函数,则必须在rootA或android_lib_B1/build.gradle文件中添加。

当然,rootB/settings.gradle不会被读取,因为您正在使用rootA项目。

部分解决方案可以是使用公用文件夹,您可以在其中放置gradle文件。可以使用以下方法链接这些文件:

代码语言:javascript
复制
apply from: 'gradleFolderScript/myFile.gradle'
票数 3
EN

Stack Overflow用户

发布于 2016-02-23 09:43:48

另一种选择是保持项目分离,并将工件发布到公共存储库(如工匠)。请参阅出版工件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35573356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档