认识Gradle

目录

gradle 是什么

了解构建是什么

gradle使用教程

build.gradle

settings.gradle

gradle/*

gradle侧边栏

参考 


  • gradle 是什么

        gradle是一种自动化构建工具, 可以用于构建java 、c++、python、android 等项目。

gradle基于Groovy语言的,能自动地执行各种构建任务,如编译代码、 运行测试、打包应用程序等。可以像写java代码一样,我们也可以用gradle去编写构建的脚本,gradle也有对象、接口、函数、参数、变量、继承等这些概念。


  • 了解构建是什么

        可以将项目的代码从源代码到具体程序文件的过程,称为代码构建。

行为包括:编译、测试、运行、打包、部署的过程

  1. 编译:主要目的是将开发者使用高级编程语言编写的源代码程序,翻译成计算机能够解读、运行的可执行文件
  2. 打包:  就是将所有的源代码、配置文件和资源文件等全部压缩到一个文件里,形成一个可执行的部署包。对于java程序,这个部署包一般是jar包或者war包。

         - jar包: 简单来说主要用于构建独立的java应用程序或库,其可以直接被JVM加载和使用

         -war包:主要用于构建web应用程序,包含了类、资源文件、配置文件、以及前端资源文件             等,需要部署到java web容器(如Tomcat)中才能运行


  • gradle使用教程

        接下来以idea 配置和使用gradle构建项目为例。初步了解gradle如何使用。

        一个gradle项目的构建主要分为几个模块: build.gradle 、 settings.gradle、 gradle/* ,通过idea创建gradle项目,会自动为我们生成这些文件。 

下面继续了解这几个模块的作用:

  • build.gradle

        前面有说到,gradle也有接口、对象等这些概念。build.gradle 就是继承接口 org.gradle.api.Project 的一个实例对象,可以通过ctrl+鼠标左键 点击build.gradle 的 dependencies,跳到接口Project , 可以看到里面定义了很多的方法。

        -- apply plugin 、 plugins

apply plugin: 'java'
apply plugin: 'idea'
plugins {
	id 'java'
	id 'org.springframework.boot' version '3.2.0'

        声明gradle使用哪些插件, 两者的主要区别是用法,apply plugin是声明单个插件, plugins可声明多个插件。

        -- buildscript{}闭包

        执行gradle脚本所需要的资源,主要包含maven仓库、第三方插件等

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.springframework.boot:spring-boot-gradle-plugin:${springBootStarterVersion}"
    }
}

        -- repositories{} 闭包

        声明使用哪个远程仓库, 和dependencies{}闭包配合使用。 如果dependencies{}里声明了远程依赖包, 则会从这里的远程仓库去下载依赖。

repositories {
    maven {
        mavenCentral()
    }
}

        

        -- congigurations{} 闭包

       简单说就是可配置一些东西,来管理 dependencies{} 里的依赖, 如下面配置, 会对dependencies里声明的所有依赖,排除掉logger相关的包

configurations {
    // remove default logger
    all*.exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
}

        -- ext

        是自定义属性, 有些人会把版本信息相关的配置在这里,或者放到另外自己单独新建的properties文件。 如下面配置的一条版本信息, 可以在dependencies{} 声明相关的依赖时引用这个 ${log4j2.version} 来指定版本信息。

ext['log4j2.version'] = '2.17.1'

        -- dependencies{}

        声明项目运行所需要的依赖, 可以是远程依赖包,或者本地依赖包。如果声明了远程依赖包,则需要在repositories{} 指定远程仓库。

        一般使用implementation、api/compile、classpath 这些函数来声明依赖包,具体的区别可以自行再了解。

//本地依赖引用示例
dependencies {
    api fileTree(include: ['*.jar'], dir: 'libs')
}
dependencies {
    Implementation files('libs/your-library-file-name.jar')
}
dependencies {
    //远程依赖
    implementation "org.springframework.boot:spring-boot-starter-web:${springBootStarterVersion}"
    implementation "org.mybatis.spring.boot:mybatis-spring-boot-starter:${mybatisSpringBootStarterVersion}"

        -- task{}

        可以在build.gradle 中自定义task, 然后通过gradle yourTaskName 命令可以执行这个task。

task getVersion {
	print version
}

        另外,gradle官方也提供了一些task。 在idea项目右侧的gradle侧边栏,点击打开Tasks可以看到。

  • settings.gradle

        是org.gradle.api.initialization.Settings 接口的实例对象。可以声明项目名称,导入代码模块。

如下面声明项目名称为sa_demo, 导入本地模块demo1, 和外部模块demo2。 

导入模块后,就可以在build.gradle 添加依赖使用了。

rootProject.name = 'sa_demo'

include 'demo1'

include 'demo2'
project(':demo2').projectDir = file('../demo2')

  • gradle/*

        该目录下主要有 gradle-wrapper.properties 这个文件可以进行配置。 主要配置gradle的版本和下载的url地址, 安装目录 GRADLE_USER_HOME等内容

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

  • gradle侧边栏

项目的gradle侧边栏, 每个module都有Tasks、Dependencies,

主Module还会多一个Run Configurations。

        -- Tasks 是Gradle官方提供的一些原生task

        常用的几个task :

               build :对整个项目进行彻底的重新编译,只针对更改过的文件进行编译

                jar: 打jar包

                clean: 清理编译缓存,主要清理build/下面的文件

        -- Dependencies 展示了项目的依赖关系

        -- Run Configuration 是查看运行配置关系的


参考 

官方文档:

Project (Gradle API 8.5)

Project - Gradle DSL Version 8.5

下载地址:

Gradle | Releases

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值