Gradle用法详细介绍

Gradle 是一个基于 Java 平台的自动化构建工具,广泛用于构建、测试、部署和管理 Java、Kotlin、Android 等项目的生命周期。以下是 Gradle 的详细用法介绍:

1. Gradle 项目结构

Gradle 项目通常有以下结构:

project-root/
├── src/
│   ├── main/
│   │   ├── java/          # 源代码
│   │   └── resources/     # 资源文件
│   └── test/
│       ├── java/          # 测试代码
│       └── resources/     # 测试资源文件
├── build.gradle           # 项目构建脚本
├── settings.gradle        # 多项目配置文件
└── gradle/
    └── wrapper/           # Gradle Wrapper 文件

2. Gradle 构建脚本

Gradle 的构建脚本是基于 Groovy 或 Kotlin DSL(领域特定语言)编写的,通常命名为 build.gradlebuild.gradle.kts(Kotlin 版本)。

2.1 基本语法
  • 任务(Task):Gradle 的核心是任务,任务是构建过程中的一个步骤。
  • 插件(Plugin):插件为 Gradle 提供预定义的任务和配置。
  • 依赖(Dependency):项目所需的库或模块。
2.2 示例:简单的 build.gradle
plugins {
    id 'java'              // 应用 Java 插件
}

group 'com.example'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()         // 添加 Maven Central 仓库
}

dependencies {
    testImplementation 'junit:junit:4.13.2'  // 添加 JUnit 测试依赖
}

3. Gradle 常用命令

Gradle 提供了许多命令行工具来执行构建任务。

3.1 查看任务
gradle tasks

列出项目中所有可用的任务。

3.2 构建项目
gradle build

执行编译、测试和打包任务。

3.3 清理构建
gradle clean

删除构建输出目录(如 build/)。

3.4 运行测试
gradle test

运行项目中的测试用例。

3.5 查看依赖
gradle dependencies

查看项目的依赖树。

3.6 查看项目结构
gradle projects

查看多项目构建中的子项目。

4. Gradle 依赖管理

Gradle 的依赖管理非常强大,支持多种仓库和依赖类型。

4.1 添加依赖

build.gradle 中,使用 dependencies 块添加依赖:

dependencies {
    implementation 'org.apache.commons:commons-lang3:3.12.0'  // 添加运行时依赖
    testImplementation 'junit:junit:4.13.2'                   // 添加测试依赖
}
4.2 配置仓库

build.gradle 中,使用 repositories 块配置依赖仓库:

repositories {
    mavenCentral()         // Maven Central 仓库
    mavenLocal()           // 本地 Maven 仓库
    maven { url 'https://repo.spring.io/release' }  // 自定义仓库
}
4.3 依赖版本管理

可以使用 dependencyConstraintsversions 插件来管理依赖版本:

ext {
    versions = [
        commonsLang: '3.12.0',
        junit: '4.13.2'
    ]
}

dependencies {
    implementation "org.apache.commons:commons-lang3:${versions.commonsLang}"
    testImplementation "junit:junit:${versions.junit}"
}

5. Gradle 插件

Gradle 插件提供了预定义的任务和配置,可以简化构建过程。

5.1 应用插件

build.gradle 中,使用 plugins 块应用插件:

plugins {
    id 'java'              // Java 插件
    id 'com.github.johnrengelman.shadow' version '7.1.2'  // Shadow 插件
}
5.2 常见插件
  • java:支持 Java 项目。
  • application:支持可执行 Java 应用。
  • war:支持 Web 应用打包。
  • android:支持 Android 项目。
  • spring-boot:支持 Spring Boot 项目。

6. Gradle 任务

任务是 Gradle 的核心,可以自定义任务或使用插件提供的任务。

6.1 自定义任务

build.gradle 中,定义一个自定义任务:

task hello {
    doLast {
        println 'Hello, Gradle!'
    }
}

运行任务:

gradle hello
6.2 任务依赖

任务可以依赖其他任务:

task task1 {
    doLast {
        println 'Task 1'
    }
}

task task2 {
    dependsOn task1
    doLast {
        println 'Task 2'
    }
}

运行 task2 会自动执行 task1

6.3 任务参数

任务可以接收参数:

task greet {
    doLast {
        println "Hello, ${project.greeting}!"
    }
}

greet {
    ext.greeting = 'World'
}

运行任务:

gradle greet -Pgreeting=Earth

7. Gradle Wrapper

Gradle Wrapper 是一个脚本,允许项目在没有安装 Gradle 的环境中运行。

7.1 生成 Wrapper
gradle wrapper

这会在项目中生成 gradlewgradlew.bat 文件。

7.2 使用 Wrapper
./gradlew build

使用 Wrapper 执行构建任务。

8. Gradle 配置技巧

8.1 增量构建

Gradle 支持增量构建,只重新构建发生变化的部分。

8.2 构建缓存

启用构建缓存以提高性能:

enableFeaturePreview('IMPROVED_POM_SUPPORT')
8.3 并行构建

启用并行构建:

gradle --parallel build

9. Gradle 多项目构建

Gradle 支持多项目构建,适合复杂的项目结构。

9.1 示例:多项目结构
root-project/
├── build.gradle
├── settings.gradle
├── subproject1/
│   └── build.gradle
└── subproject2/
    └── build.gradle
9.2 配置 settings.gradle
rootProject.name = 'root-project'
include 'subproject1', 'subproject2'
9.3 配置依赖

subproject1/build.gradle 中:

dependencies {
    implementation project(':subproject2')  // 依赖子项目
}

10. Gradle 示例:完整 build.gradle

plugins {
    id 'java'
    id 'application'
}

group 'com.example'
version '1.0-SNAPSHOT'

application {
    mainClass = 'com.example.Main'  // 设置主类
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.apache.commons:commons-lang3:3.12.0'
    testImplementation 'junit:junit:4.13.2'
}

task runCustom(type: JavaExec) {
    classpath = sourceSets.main.runtimeClasspath
    main = 'com.example.CustomMain'
}

总结

Gradle 是一个功能强大的构建工具,支持灵活的配置和扩展。通过构建脚本、任务和插件,可以轻松管理项目的构建、测试和部署过程。掌握 Gradle 的基本用法和常见命令,可以帮助你更高效地开发和管理项目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王盼达

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值