Gradle 基础

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 模块是重点。在这里做下简单介绍,详细部分在功能模块章节中说明:

  1. build.gradle: build.gradle是Gradle的构建脚本文件,用于定义和配置项目的构建过程依赖关系任务。它是一个Groovy或Kotlin DSL(领域特定语言)脚本,允许开发人员以简洁易读的方式描述构建逻辑。通过修改和配置build.gradle文件,您可以自定义和管理项目的构建流程,满足特定需求,并将构建过程与其他任务和工具集成起来。build.gradle文件是Gradle构建系统的核心组成部分,使您能够灵活地构建和管理项目。
  2. setting.gradle: settings.gradle是Gradle项目的顶层设置文件。它用于定义构建的根项目和子项目,并对项目的层次结构进行组织。
  3. gradle/wrapper 文件夹: wrapper文件夹用于存放Gradle包装器(gradle wrapper)的相关文件。Gradle包装器是Gradle提供的一种机制,它能够自动下载和安装指定版本的Gradle,在无需手动安装Gradle的情况下执行Gradle任务。
  4. gradlew: gradlew是Gradle Wrapper的执行脚本,是Gradle提供的工具,用于在没有预先安装Gradle的情况下运行Gradle任务。
  5. gradlew.bat: gradle.bat文件是一个用于运行Gradle命令的Windows批处理脚本。它是Gradle构建工具的一部分,可以用于执行各种构建任务,编译代码,运行测试,生成文档等。

3. 功能模块

3.1 build.gradle

在Gradle项目中,build.gradle文件是一个重要的配置文件,它用于定义项目的构建过程和依赖关系。该文件位于项目的根目录下。

build.gradle文件可以包含以下几个主要部分:

  1. buildscript块:用于定义Gradle构建脚本的配置,包括依赖关系和插件等。例如:
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.2.1'
    }
}
  1. plugins块:用于指定项目所使用的插件。例如:
plugins {
    id 'java'
    id 'application'
}
  1. repositories块:用于定义项目的依赖库仓库。例如:
repositories {
    mavenCentral()
}
  1. dependencies块:用于指定项目的依赖关系,包括外部库和其他模块等。例如:
dependencies {
    implementation 'com.google.guava:guava:30.1-jre'
    testImplementation 'junit:junit:4.13.2'
}
  1. 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'
    }
}
  1. 应用了Java插件和Application插件,表示这是一个Java项目,并且可以生成一个可执行的应用程序。

  2. 使用Maven中央仓库作为依赖库的来源。

  3. 添加了Guava库和JUnit库的依赖。

  4. 设置应用程序的入口类为com.example.MyApplication

  5. 定义了一个名为myTask的自定义任务,当执行该任务时,会打印出"Hello Gradle"。

这个示例展示了build.gradle文件的一些常用配置项。根据自己的项目需求,可以根据需要添加、修改或删除配置项。

2. settings.gradle

settings.gradle文件可以包含以下几个主要部分:

  1. rootProject.name:通过设置rootProject.name,可以为根项目(root project)指定一个名称。例如:
rootProject.name = 'MyProject'
  1. include ‘module1’, ‘module2’:通过使用include关键字,可以指定要包含的模块。每个模块代表项目中的一个具体子项目或子模块。例如:
include 'app', 'library'
  1. 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模块的项目目录

在这个示例中:

  1. rootProject.name设置根项目的名称为"MyProject"。

  2. include关键字包含了两个模块:app和library。

  3. project关键字分别为每个模块定义了具体的项目目录。可以根据实际的目录结构设置相应的路径。

这个示例展示了settings.gradle文件的配置,通过该文件可以组织和管理项目的模块。根据项目的需求,可以添加、删除或修改模块的配置。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值