1. 简介
Gradle是一种现代化的自动化构建工具和依赖管理系统,用于构建、测试和部署各种类型的项目。它是一个开源项目,最初由Gradleware公司开发,并于2009年首次发布。
Gradle建立在Apache Ant和Apache Maven的基础上,结合了两者的优点,并引入了一种基于Groovy或Kotlin的领域特定语言(DSL)来定义构建脚本。这使得构建脚本更加灵活、简洁和易于维护,同时可以利用现有的Ant和Maven插件。
我们可以像写java代码一样,用gradle去写一个构建项目的脚本,只是语法上gradle有些不一样,在gradle里面,也有对象,函数,参数,变量,接口,继承这些概念。
官网上的教程是从安装gradle开始,如果使用idea开发工具,可以直接创建gradle工程,不需要安装gradle。
2. Gradle 工程项目结构

Gradle 工程主要包含这几个模块,其中 build.gradle 模块是重点。在这里做下简单介绍,详细部分在功能模块章节中说明:
- build.gradle: build.gradle是Gradle的构建脚本文件,用于定义和配置项目的构建过程、依赖关系和任务。它是一个Groovy或Kotlin DSL(领域特定语言)脚本,允许开发人员以简洁易读的方式描述构建逻辑。通过修改和配置build.gradle文件,您可以自定义和管理项目的构建流程,满足特定需求,并将构建过程与其他任务和工具集成起来。build.gradle文件是Gradle构建系统的核心组成部分,使您能够灵活地构建和管理项目。
- setting.gradle: settings.gradle是Gradle项目的顶层设置文件。它用于定义构建的根项目和子项目,并对项目的层次结构进行组织。
- gradle/wrapper 文件夹: wrapper文件夹用于存放Gradle包装器(gradle wrapper)的相关文件。Gradle包装器是Gradle提供的一种机制,它能够自动下载和安装指定版本的Gradle,在无需手动安装Gradle的情况下执行Gradle任务。
- gradlew: gradlew是Gradle Wrapper的执行脚本,是Gradle提供的工具,用于在没有预先安装Gradle的情况下运行Gradle任务。
- gradlew.bat: gradle.bat文件是一个用于运行Gradle命令的Windows批处理脚本。它是Gradle构建工具的一部分,可以用于执行各种构建任务,编译代码,运行测试,生成文档等。
3. 功能模块
3.1 build.gradle
在Gradle项目中,build.gradle文件是一个重要的配置文件,它用于定义项目的构建过程和依赖关系。该文件位于项目的根目录下。
build.gradle文件可以包含以下几个主要部分:
- buildscript块:用于定义Gradle构建脚本的配置,包括依赖关系和插件等。例如:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.2.1'
}
}
- plugins块:用于指定项目所使用的插件。例如:
plugins {
id 'java'
id 'application'
}
- repositories块:用于定义项目的依赖库仓库。例如:
repositories {
mavenCentral()
}
- dependencies块:用于指定项目的依赖关系,包括外部库和其他模块等。例如:
dependencies {
implementation 'com.google.guava:guava:30.1-jre'
testImplementation 'junit:junit:4.13.2'
}
- task块:用于定义自定义任务和构建过程中的其他操作。例如:
task myTask {
doLast {
println 'Hello Gradle'
}
}
这只是build.gradle文件的一些常用配置项,具体的内容可以根据项目的需求进行自定义。该文件允许根据项目需要进行配置,并且可以包含其他自定义的配置项。
完整的示例如下:
plugins {
id 'java' // 应用Java插件
id 'application' // 应用Application插件
}
repositories {
mavenCentral() // 使用Maven中央仓库
}
dependencies {
implementation 'com.google.guava:guava:30.1-jre' // 添加Guava库的依赖
testImplementation 'junit:junit:4.13.2' // 添加JUnit库的依赖
}
mainClassName = 'com.example.MyApplication' // 设置应用程序的入口类
task myTask {
doLast {
println 'Hello Gradle'
}
}
-
应用了Java插件和Application插件,表示这是一个Java项目,并且可以生成一个可执行的应用程序。
-
使用Maven中央仓库作为依赖库的来源。
-
添加了Guava库和JUnit库的依赖。
-
设置应用程序的入口类为
com.example.MyApplication。 -
定义了一个名为myTask的自定义任务,当执行该任务时,会打印出"Hello Gradle"。
这个示例展示了build.gradle文件的一些常用配置项。根据自己的项目需求,可以根据需要添加、修改或删除配置项。
2. settings.gradle
settings.gradle文件可以包含以下几个主要部分:
- rootProject.name:通过设置rootProject.name,可以为根项目(root project)指定一个名称。例如:
rootProject.name = 'MyProject'
- include ‘module1’, ‘module2’:通过使用include关键字,可以指定要包含的模块。每个模块代表项目中的一个具体子项目或子模块。例如:
include 'app', 'library'
- project(‘:module1’).projectDir = new File(‘path/to/module1’):通过使用project关键字,可以为每个模块定义一个特定的项目目录。这对于多模块项目非常有用,可以将模块的代码和配置文件分别放置在不同的目录中。例如:
project(':app').projectDir = new File('path/to/app')
project(':library').projectDir = new File('path/to/library')
这只是settings.gradle文件的一些常见配置项,具体的内容可以根据项目的需求进行自定义。该文件允许根据项目的结构和需求来配置项目的模块和其他设置。
以下是一个完整的settings.gradle文件示例:
rootProject.name = 'MyProject' // 设置根项目名称
include 'app', 'library' // 包含两个模块:app和library
project(':app').projectDir = new File('path/to/app') // 设置app模块的项目目录
project(':library').projectDir = new File('path/to/library') // 设置library模块的项目目录
在这个示例中:
-
rootProject.name设置根项目的名称为"MyProject"。
-
include关键字包含了两个模块:app和library。
-
project关键字分别为每个模块定义了具体的项目目录。可以根据实际的目录结构设置相应的路径。
这个示例展示了settings.gradle文件的配置,通过该文件可以组织和管理项目的模块。根据项目的需求,可以添加、删除或修改模块的配置。


被折叠的 条评论
为什么被折叠?



