Skip to the content.

首页

Gradle


  1. 需要借助maven管理依赖;
  2. 基于tasks构建的DAGs;
  3. 生命周期分为:初始化、配置、执行;
  4. 不需要安装Gradle,直接使用Gradle Wrapper构建。

Build Cache

会缓存构建任务的输出,对任务的输入做哈希计算作为缓存键,从本地和远程缓存中查找是否存在构建缓存。

buildCache {
    local {
        directory = new File(rootDir, 'build-cache')
        removeUnusedEntriesAfterDays = 30
    }

    remote(HttpBuildCache) {
        url = 'https://example.com:8123/cache/'
        credentials {
            username = 'build-cache-user-name'
            password = 'build-cache-password'
        }
    }
}

gradle wrapper

在gradle/wrapper下创建gradle-wrapper.properties文件,用于下载gradle wrapper,然后使用gradlew或gradlew.bat执行构建任务。

settings.gradle (Settings.class)

项目配置信息

rootProject.name = 'demo' // 项目名
include('app', 'list', 'utilities') // 子模块

build.gradle (Project.class)

plugins {
    // spring boot插件,需要java或war插件,指定打包方式
    // 添加了bootJar/bootRun任务,等同于spring-boot-maven-plugin插件
    id 'java'
    id 'org.springframework.boot' version 'xxx'
    id 'maven-publish' // maven发布插件,publishToMavenLocal任务等同install,publish任务等同deploy。
}

// 指定spring boot的主类(可选)
springBoot {
    mainClass = 'com.example.demo.Application'
}

dependencies {
    implementation 'com.google.guava:guava:xxx'
}

task hello {
    doLast {
        println 'Hello World!'
    }
}

依赖注入

依赖注入,支持两种配置方式,String和Map。

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter:2.7.2'
    implementation group:'org.springframework.boot', name: 'spring-boot-starter', version: '2.7.2'
}

依赖管理

repositories { // 指定使用maven仓库
    mavenLocal() // 本地仓库,直接读取M2_HOME环境变量配置
    maven { // 指定本地文件目录作为maven仓库
        url 'file://d:\\repo'
    }
    maven {
        url 'https://maven.aliyun.com/repository/public/'
    }
    mavenCentral()
}
// 声明当前项目使用的依赖
plugins {
    // 添加spring依赖管理插件,自动从spring boot版本中导入spring-boot-dependencies bom。
    id 'io.spring.dependency-management' version 'xxx'
}

dependencyManagement {
    imports {
        mavenBom 'org.springframework.cloud:spring-cloud-dependencies:xxx'
    }
}

buildscript

用于声明当前gardle脚本自身使用的配置和依赖

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'org.springframework.boot:spring-boot-gradle-plugin:2.3.4.RELEASE' 
    }
}

allProjects

用于声明当前项目及子项目共享的配置及依赖

allProjects {
    repositories {
        mavenCentral()
    }
    dependencies {
        implementation 'org.springframework.boot:spring-boot-starter:xxx'
    }
}

check & test

test属于verification任务,会自动检测并执行所有单元测试,并且作为任何正式软件构建过程的一部分。 check通常视作“生命周期”任务(形同maven),所以他实际上不做任何事情,只是用于聚合verification任务,默认情况下只包含test任务。

跳过测试

build