【gradle深入浅出】——gradle配置(一)

author author     2023-02-19     349

关键词:

参考技术A

1.【Gradle深入浅出】——初识Gradle
2.【Gradle深入浅出】——Gradle基础概念
3.【Gradle深入浅出】——Android Gradle Plugin 基础概念
4.【Gradle深入浅出】——Gradle配置(一)
5.【Gradle深入浅出】——Gralde配置(二)

前面三篇博客讲解了Gradle的基础概念,看完前面三篇博客我们应该对于Gradle都有了一个基础的认知,知道了文件的作用,Gradle的基本构成,本篇博客开始就开始进入Gradle的学习,首先讲解的是Gradle的配置,Gradle配置应该是我们日常开发中必不可少的技能,平时的打包,编译等等都需要熟悉Gradle的配置。

我们知道Gradle都关于属性配置有两个文件, local.properties 和 gradle.properties ,这两个文件的实质都是生成Java的 Properties 对象,所以要属性这两个文件的作用,首先要属性下 Properties 类。
我们首先来看下这个类的基本上结构。

看完这个我们应该就有一个大体的认识了, Properties 本质就是一个HashTable,支持设置默认属性,其他的没啥区别,哪我们看下 Properties 如何读取文件呢

可以看到 Properites 给我们提供了三个加载文件的方式,所以这里我们也可以得出一个结论, 使用 Properties 不是必须使用 .properties 格式的文件。
哪可能有人要问了,为啥这里的配置都使用properties格式的文件呢?
我猜测可能是复用Spring Boot中的支持的配置文件,Spring Boot中支持三种格式的配置文件 YAML,XML,Properties ,具体的差异这里就不展开讲解了。
我们可以理解为 .properties 就是类似于json的一套配置文件格式,IDE对于这类文件有特殊的支持,比如注释等语法,做了统一的规范
Properties文件的格式规范

有了对于Properties类的理解,我们在来看local.properties文件,理解起来就方便类许多,前面几篇博客已经提到了 local.properties 是Studio自动生成的一个本地配置文件,并且不会提交到远端,是我们自己本地的配置文件,常见的配置如下:

既然是配置文件,那么如何在 local.properites 中定义全局变量,然后在build.gradle中读取呢?比如我们的maven上传需要用户的姓名密码,每个人的都不一样,所以可以放到local.propertiest文件中

和前面介绍的一样,我们只需要在local.properties中定义变量,然后在gradle中读取变量只需要生成Properties类来进行读取文件。

同样的这也是一个Properties类型的文件,但这个文件主要是配置和Gradle自身相关的配置内容的,接下来聊聊他的几个作用:

这里主要是配置本项目在使用Gradle进行编译时的配置,比如虚拟机堆栈配置(常见的编译速度优化就在这里配置)

所以看到上面的定义后,我们就可以理解常见的“编译速度优化”的配置的大概意思

除了刚才说的这个文件用于配置gradle属性,这个文件还可以用于配置系统属性和android属性
并且可以区分配置不同的项目的配置
1、单项目gradle使用代理:gradle/wrapper/gradle-wrapper.properties
2、全局gradle使用代理:userdir/.gradle/gradle.properties

其他的系统变量这里就不列举了,具体看我们遇到具体场景来设置

接着来看下在gradle.properties文件中如何定义变量,gradle.properties就是官方定义的用来定义变量的文件的地方,所以定义和获取就不需要像local.properties那么麻烦了。

获取变量,就不需要通过文件流读取文件流,gralde内部自身已经做了这个,我们可以直接引用变量即可。

setting.gradle前面的博客介绍了,是用于配置项目的组成和模块的,所以一半我们的setting.gradle文件都是这样的

前面有讲过setting.gradle的实质是生成一个Setting对象,我们按住ctrl点击include就进入了Setting.gradle类,其实就可以知道我们可以调用的api,这里还是介绍我们常用的几个方法吧。首先来看下最常用的 include 方法。

这里特意把注释也放了进来,不得不说老外对于注释真的写的非常详细,往往我们忽视了这么冗长的注释,但当发现问题,从搜索引擎上搜相关资料都时候就会发现,其实大部分就是对于注释都翻译。
所以这里我下面介绍都内容,就会发现和上面注释都大同小异。
首次看下这里的引入方式,一般都是 include \':app\' ,这里的语法是这样的

在这里 : 表示的路径的分隔符,也就是 \\ 的意思,所以这里都需要使用 : ,其次这里都路径是相当于根目录的路径。然后我们可以看到其实这个方法是可变参数,所以这里支持多个项目引入。

所以我们如果有一个这样的目录结构的项目

那么这时的setting.gradle就是这样

这时我们可能有个问题:我们如果引入的不是根目录下的项目怎么办?也就是引入其他路径下的项目作为我们的子module,因为这里一直是相对与根目录的路径

这样我们就可以引入不在这个项目中的Lib作为我们这个项目的Lib,组件化的工程经常就会这样使用。
最后我们看下还有一个小知识点,我们如果想改变这个Lib在Studio的显示的名称,该如何操作?

这个方法的作用就是我们这样的,可以改变Lib在IDE中的名称。

接着来看下在setting.gradle怎么定义全局变量呢?这时候就是利用gradle的拓展属性的特性了。

然后在build.gradle中使用变量的时候,就还是使用gradle.ext使用即可。

关于ext属性我们后面专门再讲下,我们前面也讲到了我们全局就只会有一个gradle对象,所以这里可以理解是一个全局的map对象,这样就好理解了很多。

至此,本篇博客对于 gradle.properties 、 local.properties 、 setting.gradle 都配置都有了一个较为详细都讲解,我们后面在使用过程中,对于这三个文件的配置都不会那么陌生,并且对于三个文件的差异都有了一个基本都认知,知道我们在定义本地变量,不同人都环境有差异都地方都应该在local.properties配置,大家共同的配置和变量定义可以放到gradle.properties这个专职用于存放配置的文件,最后就是专门用于配置我们项目的目录结构的setting.gradle,当然这个文件也可以用于配置一些变量,这时候我们就要把我单一职责的原则,也就是高内聚,低耦合那一套,按照文件职责进行划分,下一篇博客准备对build.gradle的配置进行讲解。

win10安装及配置gradle

...装步骤2.1、安装前提条件2.2、安装步骤三、Gradle环境变量配置四、修改Gradle本地仓库的位置五、验证一、Gradle下载1.1、Gradle下载地址Gradle下载地址:https://docs.gradle.org/current/userguide/installatio 查看详情

android开发之深入理解androidstudio构建文件build.gradle配置(代码片段)

...se今天带来的一篇关于AndroidStudio构建文件build.gradle的相关配置,重点学习几个方面的内容:1、applicationId和package属性值的关系,2、怎么配置安全的自定义签名,3、两种构建类型的区别,4、为什么要定制产品... 查看详情

深入理解gradle中的task

...赖,甚至使用了程序来创建task。在本文中,我们会更加深入的去了解一下gradle中的task。定义task定义一个task可以有很多种方式,比如下面的使用string作为task的名字:task('hello'){doLast{println"hello"}}task('copy',type: 查看详情

idea2021.1.3配置gradle步骤

目录一、Gradle的安装配置步骤二、idea2021.1.3配置gradle步骤一、Gradle的安装配置步骤参考lz此博文链接:https://wwwxz.blog.csdn.net/article/details/126082633?spm=1001.2014.3001.5502二、idea2021.1.3配置gradle步骤依次点击【File】——>【setti 查看详情

idea2021.1.3配置gradle步骤

目录一、Gradle的安装配置步骤二、idea2021.1.3配置gradle步骤一、Gradle的安装配置步骤参考lz此博文链接:https://wwwxz.blog.csdn.net/article/details/126082633?spm=1001.2014.3001.5502二、idea2021.1.3配置gradle步骤依次点击【File】——>【setti 查看详情

gradle系列:深入了解gradle和maven的区别(代码片段)

文章目录前言简介gradle和maven的比较可扩展性性能比较增量构建构建缓存Gradle守护进程依赖的区别从maven迁移到gradle先看下怎么引入这三个plugin:自动转换转换依赖转换repositories仓库你可以在gradle使用maven的仓库:我们还... 查看详情

groovygradle环境搭建(下载gradle工具|查找本地缓存的gradle工具|配置gradle环境变量)(代码片段)

...目录一、下载Gradle工具二、查找本地缓存的Gradle工具三、配置Gradle环境变量一、下载Gradle工具到Gradle官方网站https://gradle.org/下载Gradle工具;Gradle安装:https://gradle.org/install/Gradle版本:https://gradle.org/releases/二、查找本地缓存的Gradle工... 查看详情

gradle安装和配置代理

...装打开Gradle下载页面,下载最新的gradle-4.6-bin.zip,解压并配置环境变量:GRADLE_HOME:bin文件夹所在的解压目录Path:%GRADLE_HOME%\bin控制台输入gradle -v,返回版本号即安装成功二、配置代理从国内访问中心仓库的速度很慢,可配... 查看详情

gradle安装配置(代码片段)

目录一、资源下载二、Gradle安装1.文件解压2.配置环境变量3.验证安装成功4.修改默认仓库目录Gradle是一个基于ApacheAnt和ApacheMaven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,也增... 查看详情

gradle初识

一、安装配置gradle官方网站https://gradle.org/,下载下来是一个压缩包,解压到合适的目录即可,然后配置环境变量(GRADLE_HOME,Path),略去。二、IDEA配置NewProject时选择Gradle作为构建工具。值得关注的配置如下。创建的项目的结构如图... 查看详情

gradle的安装与基本配置

学习其他内容时间久了感觉比较枯燥,效率变低,于是想要了解一下Spring源码。下载后发现Spring源码需要使用Gradle来构建(build),下载其依赖的jar包等。因此有必要安装一下Gradle环境。参:spring源码如何导入到eclipse 一、Gradle... 查看详情

androidgradle插件gradle依赖管理①(org.gradle.api.project配置|androidgradle插件配置与gradle配置关联)★(代码片段)

文章目录一、org.gradle.api.Project配置二、AndroidGradle插件配置与Gradle配置关联AndroidPluginDSLReference参考文档:AndroidGradle插件配置与Gradle配置关联:【AndroidGradle插件】Gradle依赖管理①(org.gradle.api.Project配置|AndroidGradle插件配置与Gradle配置... 查看详情

androidgradle插件gradle基础配置③(生成gradlewrapper配置|分析生成的gradle-wrapper.properties配置文件)(代码片段)

文章目录一、生成GradleWrapper配置二、分析生成的gradle-wrapper.properties配置文件一、生成GradleWrapper配置在上一篇博客【AndroidGradle插件】Gradle空白项目构建示例演示基础上,已经创建了build.gradle构建脚本,并且执行了gradle命令,输出了... 查看详情

groovyintellijidea中创建gradle工程(gradle工程目录文件分析)

...工具相关的缓存文件;.idea目录,是IntelliJIDEA开发环境相关配置,不需要管;build目录,是编译后的输出目录,这里还没有进行编译,因此没有;gradle目录,用于配置Gradle构建工具脚本;gradlew文件和gradlew.bat文件,分别是Linux和Windows下自动设置Gra... 查看详情

gradle初探

...载最新版的程序,地址:https://gradle.org/gradle-download/。1.2.配置环境变量GRADLE_HOME:值为gradle根目录路径,并在PATH中添加"%GRADLE_HOME%in"1.3.配置IDE工具的Gradle环境这里我使用IDEA进行创建(eclipse应该也有对应的grad 查看详情

aop面向切面编程androidstudio中配置aspectj(下载并配置as中jar包|配置gradle和gradle插件版本|配置gradle构建脚本)(代(代码片段)

...章目录一、AspectJ下载二、拷贝aspectjrt.jar到AndroidStudio三、配置Gradle和Gradle插件版本四、配置Gradle构建脚本一、AspectJ下载首先,参考【AOP面向切面编程】AOP简介(AspectJ简介|AspectJ下载)三、AspectJ下载博客,下载AspectJ;下载地址为https://ww... 查看详情

gradle安装配置

...领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。面向Java应用为主。当前其支持的语言限于Java、Groovy、Kotlin和Scala。到此不得不说另一个很火的工具maven,众所周知,maven的两大作用:①:管理jar包②:构建项目使... 查看详情

androidgradle插件gradle构建机制②(groovy语言dsl特性|settings.gradle配置文件解析|配置子模块工程目录|顶层配置)(代码片段)

文章目录一、Groovy语言DSL特性二、settings.gradle配置文件解析1、配置子工程2、配置不同目录的子工程3、顶层配置Gradle构建工具的本质是Java应用程序,是运行在Java虚拟机上的;在空白的目录中执行该Gradle构建工具,可以生成一系列的... 查看详情