gradle的配置相关

一、 gradle的配置文件

Gradle中,可以有多个配置文件来定义构建过程和其他相关设置。其中,最主要的配置文件是build.gradle,它通常位于项目的根目录下,用于定义项目的构建过程、依赖关系和其他构建相关的设置。

除此之外,还有其他的配置文件:

  • settings.gradle:用于配置 Gradle 的设置,例如定义项目的名称、子项目等信息。
  • gradle.properties:用于定义 Gradle 属性,例如设置构建缓存、定义构建版本等。
  • gradle.init.d:用于在 Gradle 初始化时执行自定义的初始化脚本。
  • buildSrc 目录:用于存放与构建相关的代码,例如自定义任务、插件等。

这些配置文件在 Gradle 中扮演着不同的角色,用于定义构建过程、配置构建环境和执行构建任务等。

1.1 build.gradle

build.gradle 是 Gradle 构建工具的主要配置文件之一,用于定义项目的构建过程、依赖关系和其他构建相关的设置。在该文件中,您可以定义任务、插件、依赖项和其他构建相关设置。

以下是 build.gradle 文件中最常见的设置:

  1. 定义项目名称和版本:
group 'com.example'
version '1.0.0'
  1. 添加构建依赖项:
dependencies {
    implementation 'com.google.guava:guava:29.0-jre'
    testImplementation 'junit:junit:4.13.2'
}
  1. 定义自定义任务:
task myTask {
    doLast {
        println "This is my custom task."
    }
}
  1. 应用插件:
plugins {
    id 'java'
}
  1. 定义源代码目录:
sourceSets {
    main {
        java {
            srcDirs = ['src/main/java']
        }
    }
}
  1. 配置编译选项:
compileJava {
    options.encoding = 'UTF-8'
}

1.2 settings.gradle

settings.gradle 是 Gradle 构建工具的配置文件之一,用于配置 Gradle 的全局设置以及多项目构建。在该文件中,您可以定义项目的名称、子项目、Gradle 插件、Gradle 版本等设置。

以下是 settings.gradle 文件中最常见的设置:

  1. 定义项目名称:
rootProject.name = 'my-project'
  1. 定义子项目:
include 'module1', 'module2'
  1. 定义包含子项目的目录:
include 'module1:submodule1', 'module2:submodule2'
  1. 排除子项目:
exclude 'module3'
  1. 配置 Gradle 插件:
pluginManagement {
    repositories {
        gradlePluginPortal()
        maven {
            url 'https://plugins.gradle.org/m2/'
        }
    }
}
  1. 配置 Gradle 版本:
gradle.version = '7.3.3'

注意,settings.gradle 文件只在多项目构建时才会使用。如果您只需要进行单项目构建,不需要使用 settings.gradle 文件。

1.3 gradle.properties

gradle.properties 是 Gradle 构建工具的配置文件之一,用于定义构建脚本中使用的变量和属性。该文件通常用于定义一些公共的属性或配置,这些配置可以在构建过程中重复使用,例如依赖版本号、构建工具的版本号等。

以下是 gradle.properties 文件中最常见的设置:

  1. 定义依赖版本号:
springVersion=5.3.10
  1. 定义构建工具版本号:
gradleVersion=7.3.3
  1. 定义其他属性:
myProperty=value

这些属性可以在 build.gradle 文件中使用。

例如,以下代码演示了如何在 build.gradle 文件中使用 gradle.properties 文件中定义的属性:

dependencies {
    implementation "org.springframework:spring-core:${springVersion}"
}

此外,还可以在 gradle.properties 文件中定义 Gradle 构建工具的全局配置,例如代理设置、Gradle 守护进程设置等。

gradle.properties 文件是 Gradle 构建过程中非常重要的一部分,它可以使构建脚本更加模块化和可维护。

注意,如果在 gradle.propertiesbuild.gradle 文件中同时定义了同名属性,build.gradle 文件中定义的属性会覆盖 gradle.properties 文件中定义的属性

1.4 gradle.init.d

gradle.init.d 目录是 Gradle 构建工具用于初始化构建的目录之一。在该目录下,您可以添加一些初始化脚本,这些脚本会在 Gradle 构建时被执行。

通常,gradle.init.d 目录下的脚本可以用于执行一些通用的初始化任务,例如设置环境变量、添加仓库、定义插件等。这些脚本可以在多个项目中共享,可以使您的构建脚本更加模块化和可维护。

默认情况下,Gradle 不会在 gradle.init.d 目录下查找任何脚本文件。如果您需要 Gradle 查找并执行 gradle.init.d 目录下的脚本,需要在 settings.gradle 文件中添加以下配置:

//启动初始化脚本
enableFeaturePreview('GRADLE_METADATA')
apply from: 'gradle/init.gradle'

上面的配置启用了 Gradle 的实验特性 GRADLE_METADATA,并在 gradle/init.gradle 脚本中定义了初始化脚本的查找路径。然后,您可以在 gradle/init.d 目录下添加一些脚本文件,这些脚本文件会在 Gradle 构建时被执行。

例如,以下是一个简单的 gradle/init.d 目录下的脚本文件,用于添加一个 Maven 仓库:

allprojects {
    repositories {
        maven {
            url "https://maven.example.com/"
        }
    }
}

注意,gradle.init.d 目录下的脚本文件执行的顺序是根据文件名的字母顺序来确定的。如果您需要控制脚本文件的执行顺序,可以在文件名中添加一些数字前缀。例如,01-init.gradle 文件会在 02-init.gradle 文件之前被执行。

1.5 buildSrc

buildSrc 是 Gradle 构建工具的一个特殊目录,用于创建和管理构建脚本中的插件和依赖。

buildSrc 目录下的代码会在项目构建之前被编译和执行,并且可以被项目中的其他构建脚本所使用。这意味着您可以在 buildSrc 目录下编写自定义插件或添加依赖,然后在项目的其他构建脚本中使用它们,从而实现更加灵活和可重用的构建过程。

通常,buildSrc 目录下的代码使用 Gradle 的 Groovy 插件或 Kotlin 插件进行编写,这样可以让您使用相同的语言和 API 来编写项目中的构建脚本和 buildSrc 目录下的代码。

例如,以下是一个简单的 buildSrc 目录下的 Groovy 代码文件,用于定义一个自定义的任务:

// buildSrc/src/main/groovy/com/example/MyTask.groovy
package com.example
import org.gradle.api.DefaultTask
import org.gradle.api.tasks.TaskAction
class MyTask extends DefaultTask {
    @TaskAction
    void myTaskAction() {
        println "Hello from my task!"
    }
}

然后可以在项目的 build.gradle 文件中使用该自定义任务:

// build.gradle
task myTask(type: com.example.MyTask)

在这个例子中,buildSrc 目录下的代码定义了一个名为 MyTask 的自定义任务,然后在项目的 build.gradle 文件中使用该自定义任务来创建一个名为 myTask 的任务。

注意,buildSrc 目录下的代码是按照相同的构建流程进行编译和执行的,因此您可以在该目录下使用任何 Gradle API 和依赖。另外,buildSrc 目录会自动添加到构建脚本的 classpath 中,因此您可以在项目的其他构建脚本中直接使用 buildSrc 目录下的代码。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

jc_caterpillar

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

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

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

打赏作者

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

抵扣说明:

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

余额充值