文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

gradle的配置相关

2023-10-04 06:39

关注

文章目录

一、 gradle的配置文件

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

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

这些配置文件在 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.groovypackage com.exampleimport org.gradle.api.DefaultTaskimport org.gradle.api.tasks.TaskActionclass MyTask extends DefaultTask {    @TaskAction    void myTaskAction() {        println "Hello from my task!"    }}

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

// build.gradletask myTask(type: com.example.MyTask)

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

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

来源地址:https://blog.csdn.net/jc15274630894/article/details/129891907

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯