首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gradle如何找到setings.gradle文件

Gradle如何找到setings.gradle文件
EN

Stack Overflow用户
提问于 2015-05-14 10:47:48
回答 1查看 596关注 0票数 3

在一个正常的项目中,我可以有这样的结构:

代码语言:javascript
复制
myProject/
    build.gradle
    gradle.properties
    **settings.gradle**

但如果我有另一个项目

代码语言:javascript
复制
myProject2/
    build.gradle
    gradle.properties

效果很好。

当myProject2是myProject的子文件夹(但不是子项目)时,事情就变得奇怪了。

代码语言:javascript
复制
myProject/
    myProject2/
        build.gradle
        gradle.properties
    build.gradle
    gradle.properties
    settings.gradle

如何查找设置文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-14 12:49:24

settings.gradle文件有以下两个主要用途:

  1. 将库添加到构建脚本类路径中
  2. 定义哪些项目正在参与多项目构建。

因此,对于单个项目构建来说,它是可选的,但是由于#2,它对于多项目构建是强制性的。

默认情况下,假定设置文件的位置也是根项目的位置,但可以在设置文件中重新定义根项目的位置。

现在,用于定位settings.gradle文件的分级逻辑,如gradle用户指南这里中所记录的那样

如果您从一个带有设置文件的目录中触发一个多项目构建,那么Amnon是很简单的--您刚刚找到它. 如果在没有settings.gradle文件的项目中执行Gradle,Gradle将以下列方式查找settings.gradle文件:

  • 它在一个名为master的目录中查找,该目录与当前dir具有相同的嵌套级别。
  • 如果尚未找到,则搜索父目录。
  • 如果尚未找到,则将生成作为单个项目生成执行。如果找到settings.gradle文件,Gradle将检查当前项目是否属于已找到的settings.gradle文件中定义的多项目层次结构的一部分。
  • 否则,生成将作为单个项目生成执行。否则,将执行多项目构建。否则(你从

(Gradle用户指南还提供了此行为这里的用途)。

现在,回到您的情况,您提供的前两个项目布局是针对单个项目构建的,因此settings.gradle是可选的。对于第三个项目布局,如果您要从根项目(myProject)运行gradle,那么它将在它旁边找到settings.gradle,但是如果您将从myProject2文件夹运行它,那么由于这个项目父路径包含一个settings.gradle文件,gradle将找到并使用它。

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

https://stackoverflow.com/questions/30235390

复制
相关文章

相似问题

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