美文网首页
Gradle - setting

Gradle - setting

作者: super超_9754 | 来源:发表于2022-07-19 11:10 被阅读0次

一 、基础概念

settings.gradle 文件位于项目的根目录下,用于定义项目级代码库设置,并告知 Gradle 在构建应用时应将哪些模块包含在内。对于大多数项目,该文件默认如下所示:

pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}
rootProject.name = "My Application"
include ‘:app’

二、常用属性

image.png

可以执行: gradle projects 或者 ./gradlew projects 查看projects结构

正确:

include ':app'
rootProject.name="NetworkOptimization"

include 'app' // 因为app就在根目录下
rootProject.name="NetworkOptimization"

image.png

错误:

include 'NetworkOptimization/app'
rootProject.name="NetworkOptimization"

image.png

三、多项目设置

// 包括项目'foo:bar' 
include 'foo:bar' 

// 包括一个项目目录与逻辑项目路径不匹配的项目
include 'baz' 
project( ':baz' ).projectDir = file( 'foo/baz' )

// 包括许多项目目录与逻辑项目路径不匹配的项目
file( 'subprojects' ).eachDir { dir -> 
  include dir.name
  项目( ":${dir.name}" ).projectDir = dir 
}

四、拓展

settings.gradle 对应的是org.gradle.api.initialization.Settings , 支持的属性是提供的函数. 可以阅读源码了解原理

除了已提供的函数外还可以自定义函数, 这些函数会在gradle构建整个工程任务的时候执行, 所以可以在settings做一些初始化的工作

def initGradleSetting(){
    println "initGradleSetting  -> "
}
//settings.gradle加载的时候,会执行initGradleSetting
initGradleSetting()

include ':app'
rootProject.name="NetworkOptimization"

image.png

官方参考 https://docs.gradle.org/current/dsl/org.gradle.api.initialization.Settings.html

相关文章

网友评论

      本文标题:Gradle - setting

      本文链接:https://www.haomeiwen.com/subject/shijirtx.html