繁体   English   中英

Gradle中依赖项的依赖项

[英]Dependencies of dependencies in Gradle

我正在学习Gradle,正在尝试寻找最佳实践。

我将描述的项目已成功构建。 您可以在GitHub上进行克隆,这是一个eclipse / java项目: https : //github.com/pauloleitemoreira/GradleTests.git

假设我有一个MainProject,其中某些文件模块依赖项不属于MainProject。

项目结构

x-MainProject
|        |
|        x-mainModule 
|
x-LibProject
|        |
|        x-libModule
|
x-BaseLibProject
         |
         x-baseLibModule

MainProject / setting.gradle文件:

include ':mainModule'

include ':LibProject', ':LibProject:libModule'
project(':LibProject').projectDir = new File(settingsDir, '../LibProject')
project(':LibProject:libModule').projectDir = new File(settingsDir, '../LibProject/libModule')

/*???*/include ':BaseLibProject', ':BaseLibProject:baseLibModule'
/*???*/project(':BaseLibProject').projectDir = new File(settingsDir, '../BaseLibProject')
/*???*/project(':BaseLibProject:baseLibModule').projectDir = new File(settingsDir, '../BaseLibProject/baseLibModule')

LibProject / setting.gradle文件:

include ':libModule'

include ':BaseLibProject', ':BaseLibProject:baseLibModule'
project(':BaseLibProject').projectDir = new File(settingsDir, '../BaseLibProject')
project(':BaseLibProject:baseLibModule').projectDir = new File(settingsDir, '../BaseLibProject/baseLibModule')

BaseLibProject / setting.gradle文件:

include 'baseLibModule'

我注意到在Build时仅执行MainProject / setting.gradle文件。 当我构建MainProject时,不会执行其他LibProject / setting.gradle和BaseLibProject / setting.gradle。

我用/*???*/标记了听起来很奇怪的行,因为我想libModule必须知道您的依赖项在哪里。 以我的理解,这些行不是必需的,并且在构建LibModule时,gradle可以包括BaseLibModule。 但是不幸的是,如果我删除这些行,该项目将无法构建。

我在想是否还有其他地方可以放置project(':...').projectDir = new File... ,以避免包含依赖性文件的依赖性?

Gradle用户指南中的构建生命周期一章介绍了多项目构建的工作方式。 简单的版本是在根项目文件夹中有一个settings.gradle ,它定义了构建中包括哪些项目。 每个项目都可以具有build.gradle (或名称可以不同或文件可能丢失)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM