Gradle-安装、配置、使用和了解

200 阅读3分钟

Gradle-安装、配置、使用和了解

简介

Gradle 是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化构建工具。它使用一种基于 Groovy 或 Kotlin 的特定领域语言(DSL)来声明项目配置,而不是传统的 XML。

主要特点:

  • 灵活且高性能的构建工具
  • 支持多项目构建
  • 强大的依赖管理
  • 支持增量构建
  • 丰富的插件生态系统
  • 与 Maven 和 Ivy 仓库兼容

Gradle 下载

gradle官网 地址 在这里插入图片描述 可以下载这个8.0版本的源码版本 下载后的解压文件 在这里插入图片描述

配置环境变量

配置path环境变量下gradle的地址 在这里插入图片描述 打开终端,输入 gradle -version 就可以检验是否配置成功 在这里插入图片描述

Linux/Mac:

# 解压
unzip gradle-x.x.x-bin.zip -d /opt/gradle

# 设置环境变量 (添加到 ~/.bashrc 或 ~/.zshrc)
export GRADLE_HOME=/opt/gradle/gradle-x.x.x
export PATH=${GRADLE_HOME}/bin:${PATH}

# 使配置生效
source ~/.bashrc

配置国内源

Gradle自带的Maven源地址是国外的,很慢,可以选用阿里云的。 配置阿里云:在下载好的 gradle 中的 init.d 文件夹中新建一个 init.gradle 文件,配置以下信息

allprojects {
  repositories {
  	 mavenLocal()
    maven {
      url 'https://maven.aliyun.com/repository/public/'
    }
    maven {
      url 'https://maven.aliyun.com/repository/central'
    }
    mavenCentral()
  }
}

IDEA使用

配置 Setting 中的 Gradle 仓库地址 在这里插入图片描述

全局配置

Gradle 的全局配置文件位于用户主目录下的 .gradle 文件夹中:

~/.gradle/gradle.properties - 全局属性配置

~/.gradle/init.d/ - 初始化脚本

常用全局配置示例 (gradle.properties):

# 配置 Gradle 守护进程
org.gradle.daemon=true

# 配置并行构建
org.gradle.parallel=true

# 配置 JVM 参数
org.gradle.jvmargs=-Xmx2g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# 配置 HTTP 代理
systemProp.http.proxyHost=proxy.example.com
systemProp.http.proxyPort=8080
systemProp.https.proxyHost=proxy.example.com
systemProp.https.proxyPort=8080

项目结构

典型的 Gradle 项目结构:

my-project/
├── build.gradle       # 项目构建脚本
├── settings.gradle    # 项目设置文件
├── gradle
│   └── wrapper       # Gradle Wrapper 文件
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew            # Unix/Linux 包装脚本
├── gradlew.bat        # Windows 包装脚本
└── src                # 源代码目录
    ├── main
    │   ├── java       # Java 源代码
    │   └── resources  # 资源文件
    └── test
        ├── java       # Java 测试代码
        └── resources  # 测试资源文件

Gradle 依赖管理

依赖配置 常见依赖配置:

implementation - 项目编译和运行时依赖

compileOnly - 仅编译时依赖

runtimeOnly - 仅运行时依赖

testImplementation - 测试编译和运行时依赖

testCompileOnly - 测试仅编译时依赖

testRuntimeOnly - 测试仅运行时依赖

依赖声明

dependencies {
    // 外部模块依赖
    implementation 'org.springframework:spring-core:5.3.8'
    
    // 项目依赖
    implementation project(':subproject')
    
    // 文件依赖
    implementation files('libs/custom.jar')
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    
    // 动态版本
    implementation 'org.springframework:spring-web:+'  // 不推荐
    implementation 'org.springframework:spring-web:5.3.+'  // 较好
}

Gradle 常用命令

# 执行特定任务
gradle taskName

# 查看所有任务
gradle tasks

# 查看项目依赖
gradle dependencies

# 构建项目
gradle build

# 清理构建
gradle clean

# 运行应用 (application 插件)
gradle run

# 跳过测试
gradle build -x test

# 构建并刷新依赖
gradle build --refresh-dependencies

# 并行构建
gradle build --parallel

# 调试模式
gradle build --debug

# 查看构建性能
gradle build --profile

常见问题解答

Q: 构建速度慢怎么办? A:

启用 Gradle 守护进程 (org.gradle.daemon=true)

配置并行构建 (org.gradle.parallel=true)

增加 JVM 内存 (org.gradle.jvmargs=-Xmx2g)

使用构建缓存 (org.gradle.caching=true)

避免动态版本依赖

Q: 如何解决依赖冲突? A:

使用 gradle dependencies 查看依赖树

使用 strictly 强制指定版本

使用 exclude 排除特定依赖

Q: Gradle Wrapper 是什么? A: Gradle Wrapper 是一个脚本,它允许你在没有安装 Gradle 的情况下运行 Gradle 构建。它会自动下载指定版本的 Gradle。

Q: 如何升级 Gradle 版本? A:

修改 gradle-wrapper.properties 中的 distributionUrl

或者运行 gradle wrapper --gradle-version x.x.x

Q: 构建失败显示 "Could not resolve dependencies" 怎么办? A:

检查网络连接和代理设置

确保仓库配置正确

尝试 --refresh-dependencies 选项

检查依赖是否存在于配置的仓库中