Gradle配置及语法笔记,进行中~~~

Gradle语法 Gradle 支持构建变体来处理不同构建场景的需求,如不同构建类型(debug/release)、不同构建 flavor(免费版/付费版)等。Gradle 使用一种基于 Groovy(或 Kotlin)的领域特定语言(DSL)来编写构建脚本。实际使用时,应结合官方文档和具体项目需求来深入理解和应用 Gradle 的各种特性。Gradle 提供了高效的缓存机制和增量构建能力,可以避免重复工作,加快构建速度。语句应用插件,插件可以添加新的任务、扩展项目属性、引入默认依赖等。等,用于控制构建过程的输出和行为。 阅读详情

Gradle

一款最新的、功能强大的构建工具

Groovy概述(DSL编程语言的一种)

  • 基于JVM的敏捷开发语言
  • 结合了Python、Ruby和Smalltalk的许多强大的特性
  • groovy可以与Java完美结合,可以使用java所有的库
  • 语法上支持动态类型,闭包等新一代语言特性
  • 无缝集成所有已经存在的Java类库
  • 支持面向对象和面向过程(写脚本用)
groovy优势:

一种更加敏捷的编程语言
入门简单,功能非常的强大
亦可以作为编程语言和脚本语言
熟练掌握Java的同学更适合学习

groovy基础语法:

groovy变量:
  • 支持强类型语言和弱类型语言:
    可以像Java那样声明一个变量的时候就定义其类型
int x = 10;

也可以定义其为弱类型变量(变量只在一个包内作用推荐使用,跨模板时不推荐)

def x = 10;
def x = 'nice';

上述代码先将10赋值给x,此时编译器自动将x解析为Integer类型,而后又赋值一个String变量给x(在Java中是会报错的),编译器就将其有设置为String类型

groovy字符串:

可以直接使用单引号定义一个String类型变量

def name = 'a single string'  //可以不加分号

可以在输入语句中定义一个变量 ${}

def sum = "sum = 2${ + 3}"   //输出: sum = 5 (只能双引号可以字符扩展)

使用双引号定义的${}是GString类型,和String类型可以相互赋值转换
使用减法直接删除减数在被减数中的值

def x = "hello nice"
def y = "nice"
println x - y  //输出hello
闭包

闭包的概念也许我们稍微陌生一点,但是实际上,我们可以简单把它当做一个匿名类,只是编译器提供了更加简单的语法来实现它的功能。
闭包(Closure)是groovy中一个很重要的概念,而且在gradle中广泛使用。简而言之,闭包就是一个可执行的代码块,类似于C语言中的函数指针。在很多动态类型语言中都有广泛的使用,java8 中也有类似的概念:lambda expression,但是groovy中的闭包和java8中的lambda表达式相比又有很多的不同之处。

我们可以把闭包当做一个匿名内部类,只是编译器提供了更加简单的语法来实现它的功能。在Groovy中闭包也是对象,可以像方法一样传递参数,并且可以在需要的地方执行。
闭包有三个很重要的属性分别是:this,owner,delegate,分别代表以下概念:

  • this: 对应于定义闭包时包含他的class,可以通过getThisObject或者直接this获取
  • owner: 对应于定义闭包时包含他的对象,可以通过getOwner或者直接owner获取
  • delegate: 闭包对象可以指定一个第三方对象作为其代理,用于函数调用或者属性的指定,可以通过getDelgate或者delegate属性获取
列表(List)
def list = [1,2,3,4,5]  //定义的是一个长度为5的ArrayList
int[] array = [1,2,3,4,5] //定义的是一个长度为5的数组
int result = list.find {return it % 2 == 0}  //查找第一个符合闭包条件的值
def result = list.findAll {return it % 2 == 0} //查找所有符合闭包条件的值
映射(Map)
def colors = [ red: 'ff0000',
               green: '00ff00',
               blue: '0000ff']
colors.red //索引方法,获取key为red的value
colors.yellow = 'ffff00' //添加元素,添加key为yellow和value为ffff00的元素
colors.complex = [a:1, b:2] //添加元素,添加key为complex和value为[a: 1.,b: 2]的map对象
=======================================================================
def students = [
	1: [number: '0001', name: 'Bob', score: 55, sex: 'male'],
	2: [number: '0002', name: 'Johnny', score: 62, sex: 'female'],
	3: [number: '0003', name: 'Claire', score: 73, sex: 'female'],
	4: [number: '0004', name: 'Amy', score: 66, sex: 'male'],
]
//遍历
students.each { def student -> println "the kry is ${student.key}," 
+ "the value is ${student.value}"  //获取了students里所有的key和value

面向对象

注意:
1.groovy中类和方法默认都是public
2.写脚本可在IDEA中创建一个groovy script类
3.接口中不可以写非public类型的方法

元编程

在Java中查找一个类,找不到就会报错,groovy的元编程中,找不到一个类也会继续运行下去(粗略解释)

groovy中对Json的操作

实体类转化为Json对象:

def list = [new Person(name: 'John', age: 25),
			new Person(name: 'Major', age: 26)]
JsonOutput.toJson(list)  // 转化为Json对象

Json对象转化为实体类:

def jsonSlpuer = new JsonSlurper()
jsonSlpuer.parse()  //创建 一个JsonSluper对象,用其中的parse()方法即可
groovy对xml文件的处理
final String xml = "..."
//开始解析此xml数据
def xmlSluper = new XmlSlurper()
def response = xmlSluper.parseText(xml)
groovy对普通文件的处理

所有Java对文件的处理类,groovy都可以使用
而groovy还有其特有的处理方法

def file = new File('文件所在路径')
file.eachLine { line ->  //groovy中的eachLine方法,作用是读取该文件中的每一行
	println line         //输出每一行
} 
=========================================================================
def text = file.getText()  //获取文件更简单的方法
println text 
=========================================================================
def reader = file.withReader { reader -> 
	char[] buffer = new char[100]		//获取前100个字符
	reader.read(buffer)
	return buffer
}
gradle是什么, 能做什么
第二章 gradle自动化构建系列文章 之 Groovy中的Map groovy中的Map < center> Map的规范和list类似,与list一样,Map保证可以通过下标来获取或者设置值,不同的是map可以使用任何类型作为下标操作符的参数,而list仅仅支持整数,list知道list中元素的顺序,而map一般不知道,特殊的map如java.util.TreeMap也可以知道他们的key的顺序。 map的定义 //采用默认方式定义 def... 阅读详情

相关推荐

【2024最新】Gradle安装配置教程

【2024最新】Gradle安装配置教程

代码改变世界 2万+

语法基础——Gradle语法基础

生命周期 Gradle的构建依次会执行下面的三个生命周期 初始化阶段(Initialization):解析整个工程中的所有Project,构建出所有的project对象 配置阶段(Configuration):解析所有的projects对象中的task,构建好所有task的拓扑图 执行阶段(Execution):执行具体的task及其依赖task 生命周期监听 在项目的build....

点击置顶文章查看博客目录(全站式导航) 1万+

Gradle build.gradle样例文件 Groovy语法 注解

开始学着用Gradle,把常用的一些build.gradle配置内容贴上来。 希望可以给到需要的人一些帮助。也当做是自己的笔记 ヾ(o・ω・)ノ。 持续更新。 推荐相关blog:http://www.cnblogs.com/dasusu/p/6628099.html 官方文档:https://gradle.org/docsgroup 'gradle-demo' version '1.0-SN

知 识 不 是 装 饰。 3212

Gradle筑基——Gradle语法

很多开发喜欢把Gradle简单定义为一种构建工具,和ant,maven等作用类似, 诚然Gradle确实是用来做构建,但是如果简单得把Gradle拿来做构建,就太小看Gradle了.笔者更愿意将Gradle看做一种编程框架。在这个框架中,你可以做很多ant,maven等常用构建工具做不了的事情, 如将自己的任务task集成到构建生命周期中,完成文件拷贝,脚本编写等操作。

Dream It Possible 574

Gradle_配置离线打包环境

Gradle_配置离线打包环境

renzhongrui的博客 5226

当拿到金葡菌的全基因组测序数据后该怎样进行分析呢

很多做科研实验/做课题报告的科研老师们在拿到全基因组测序数据之后要进行一系列的分析,但同时也担心数据庞大分析缓慢导致进度,也有因为不会编程不知道该如何进行拼接分析的...其实需要质控拼接、MLST分析及菌种鉴定等完全可以自己在平台上进行分析,下面以金葡菌为例进行了质控拼接及菌种鉴定等分析。 网络图片(侵删) 金黄色葡萄球菌(Staphylococcus aureus,S. aureus)也称“金葡菌”,隶属于葡萄球菌 属,是革兰氏阳性菌的代表,为一种常见的食源性致病微生物。 那么在取得了金葡菌全基

GenesClouds的博客 1969

《Gradle构建脚本的基本结构和语法》

本文介绍了Gradle的基本结构和语法,帮助读者更好地理解和使用Gradle,提高项目构建和管理效率。从项目配置、任务、插件到常用命令,以及通过示例应用展示如何构建Java项目,内容涵盖全面。常见问题解答则解决读者实际应用中可能遇到的难题。读者通过学习本文,能够在软件开发中更有效地应用Gradle,提升项目开发效率和质量。Gradle是一种基于Groovy和Kotlin语言的构建工具,旨在简化构建、测试、部署和发布过程。它结合了传统的Ant和Maven的优点,提供了更灵活和易于扩展的构建脚本。

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 913

微信小程序审核避坑指南:巧用 wx.getAccountInfoSync 实现审核与线上环境无感切换

本文详细介绍了如何利用`wx.getAccountInfoSync`API实现微信小程序审核与线上环境的无感切换。通过环境识别技术和动态渲染架构设计,开发者可以优雅解决审核资质门槛问题,同时保持生产环境的完整用户体验。文章包含组件化实现、全局状态管理等实用方案,帮助开发者提升审核通过率。

weixin_30527423的博客 260

Android Studio 配置Gradle总结

一, 问题:①换个新电脑安装完Android Sutdio第一次打开一个工程巨慢怎么办? ② 手动配置Gradle Home为什么总是无效? ③ 明明已经下载了Gradle,配置了gradle home,为什么打开工程还是去自动下载Gradle?二 简介(1) Android Studio怎么知道该用哪个Gradle呢? AS一个项目所用的Gradle是由我们的工程中下面这个文件决定的

iblade的博客 8万+

开源CMDB与资产管理平台对比报告

本文对比分析了9款主流开源CMDB平台,从集成能力、功能完整性和多语言支持三个维度进行评测。重点介绍了VeCMDB、蓝鲸CMDB、WeCMDB和OpsAny等国产平台的特色:VeCMDB以动态模型和自动发现见长;蓝鲸CMDB适合超大规模企业级应用;WeCMDB专注金融级高并发场景;OpsAny提供一体化运维解决方案。针对不同规模企业给出选型建议:中小团队推荐Snipe-IT等轻量工具;大型企业建议蓝鲸或WeCMDB;需国产化适配的可选VeCMDB或OpsAny。文章还特别指出iTop、GLPI等适合ITIL

huang0612123的博客 1080

win10删除vmware12后,重新安装失败(遗留注册表问题)解决总结

之前安装过一次VMware虚拟机,后来由于某些已遗忘原因把它卸载了,但是没有卸载完全,为以后安装留下了一些麻烦,现在根据我google很多内容总结后写下了自己的解决办法。 一些我搜的的可以用的VM12的注册码 5A02H-AU243-TZJ49-GTC7K-3C61N ZZ510-DYX47-48ERP-D6XZG-YCKU2 YV5MU-2FX5H-M841P-LZX5X-PYHX8

Jeason的博客 2万+

Gradle - 构建文件详解 build.gradle核心语法与配置规范

Gradle构建文件build.gradle详解:作为Gradle项目的核心配置文件,它定义了项目结构、依赖管理和构建行为。文章深入解析了build.gradle的基础语法(支持Groovy和Kotlin DSL)、插件配置方式、仓库声明规则以及依赖管理策略(implementation/api等不同作用域)。通过典型配置示例,帮助开发者掌握Gradle构建脚本的编写规范,实现高效的项目构建管理。内容涵盖多语言DSL对比、插件应用方法、仓库设置和依赖声明等核心知识点,适合Java开发者系统学习Gradle构

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

【位运算进阶之----右移(>>)】

😄嘻嘻,朋友们,大家好!昨天我们学习了左移,今天我们来谈谈右移>>。⭐️简单来说,,也就是去掉一个数的二进制表达的末位,右移一位就去掉一位,右移两位就去掉两位。下面就让我们来详细看看吧!

weixin_73453526的博客 8931

关于Android Studio的Gradle各项配置

配置插件仓库和插件获取策略。配置项目的依赖解析方式,确保依赖从官方仓库获取,避免本地仓库问题。设置了项目名称。表示项目包含一个名为app的子模块,适用于多模块项目。在国内可能会遇到的问题,就是网络问题,导致我们没法正常下载到所需的插件和以来,因而我们通常会添加镜像源google() // Google仓库,主要用于 Android 相关的插件mavenCentral() // Maven 中央仓库gradlePluginPortal() // Gradle 官方插件仓库。

qq1342753906的博客 1万+

1、vectorCast单元测试常用操作

进入软件主页面,点击file,选择set working directory,随便选择一个保存该项目的目录即可。

weixin_59334478的博客 2156

2024年数字IC秋招-华为机试-数字芯片-实习笔试题

笔试题目:40个选择题A.综合时不同文件列表内的宏定义仅在本列表生效B.宏定义会覆盖,不需要单独undefC.仿真时出现宏定义冲突以最后一次值为准D.宏定义最好在各文件中随用随定义A.4/9B.4/6C.01D.0/6。

qq_42135020的博客 2892

【Gradle-2】一文搞懂Gradle配置

Gradle第一点其实很好理解,比如Gradle需要java11的运行环境,再比如我们为了加快编译而给Gradle设置更大的运行空间等,这类配置往往相对固定的,因为它是跟随项目走的,即使是多团队协作,大家基本也都是用的同一个环境。

yechaoa 8293

基于YOLOv8的包装商品智能检测系统完整指南—含论文、代码

《基于YOLOv8的包装商品智能检测系统》摘要: 本文提出了一套完整的零售商品自动检测解决方案,利用YOLOv8深度学习框架实现高精度、高效率的商品识别。系统针对SKU110K大规模商品数据集(含11,762张高密度货架图像)进行优化,包含数据预处理、模型训练、推理检测和可视化界面全流程。详细介绍了从CSV标注到YOLO格式的转换方法、环境配置指南及技术架构设计。该系统可应用于智能零售、物流仓储等多个场景,有效解决人工盘点效率低、误差大的痛点。实验表明,该系统具备毫秒级检测速度和批量处理能力,为商业数字化转

FJN110的博客 209

idea配置gradle

一、gradle 安装 1、gradle下载 gradle下载,点击gradle下载,到官网下载zip包 2、gradle环境变量配置 创建gradle_home 在path后面添加 ${GRADLE_HOME}\bin 3、校验是否安装成功 gradle -v 二、idea配置gradle 1、修改gradle本地仓库地址 Gradle和Maven都是当前热门的自动化构建工具。使用Gradle去构建项目,由于没有办法像Maven一样配置Setting文件来修改本地库的位置,我们可以通过设置环境变量

lh87270202的博客 1万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Gradle的安装与配置

Gradle的安装与配置

Zhaof_Notes 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

AndroidStudio gradle配置

AndroidStudio gradle配置 转载自:https://www.cnblogs.com/wxishang1991/p/5457878.html 注: - 若选中`Use default gradle wrapper(recommended)`,则设置的Gradle位置为`Service directory path`中的路径; - 若选中`Use local gradle di...

程序猿的实验室 6万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Gradle之build.gradle 语法案例

group 'gradle-demo' //项目的版本号 version '1.0-SNAPSHOT' // 使用maven做为jar包的信赖管理,通过mave仓库下载项目所需的信赖包 apply plugin: 'maven' // 指定项目为java项目,项目编译(在项目提示符下执行:gradle build)时生成项目的jar包。 apply plugin: 'java' // Intel...

shuizhihun07的专栏 9317

Gradle 安装配置详解

官方文档: https://docs.gradle.org/current/userguide/installation.html#installing_manually 说明 gradle是基于Apache Ant和Apache Maven概念的项目自动化构建开源工具,也提供了很多第三方插件。在Java Web项目中通常会用到java、war、maven等插件管理项目,实现项目自动构建、jar依赖等功能。本章记录作者在 windows 系统中安装、配置gradle 6.0.1的完整过程。 一...

舞鹤白沙编码日志 2万+

Gradle学习之旅(一) -- 基础语法笔记

Gradle笔记 – 在AndroidStudio中使用Gradle脚本   Gradle,相信使用过 AndroidStudio 的童鞋们都再熟悉不过了,AndroidStudio 工具构建 Android 工程全靠他,跟 eclipse 使用的Ant类似,是一门脚本语言。在好奇心的推动下看了些博客,买了本飞雪无情的Android Gradle权威指南研究了两天,很薄的书不过介绍的...

Eshel的博客 2701

一文搞懂Gradle配置

Gradle第一点其实很好理解,比如Gradle需要java11的运行环境,再比如我们为了加快编译而给Gradle设置更大的运行空间等,这类配置往往相对固定的,因为它是跟随项目走的,即使是多团队协作,大家基本也都是用的同一个环境。

Dream It Possible 3506

gradle入门(二)——gradle配置及grovvy简单语法

gradle项目的目录结构 与maven的项目结构基本相同,src路径下分为main和test,main用于放置项目主要代码,test用于编写测试代码,build.gradle是配置jar包的文件 grovvy简单语法 打开grovvy控制台以及编写代码测试 // grovvy 编程语言 println ("hello grovvy"); // grovvy 中可以省略末尾的分号和句中的括号,...

gc都收不走的咸鱼 563
上一篇: Gradle新手简单介绍
下一篇: 关于Eclipse中Spring的配置文件中文变成转义字符问题
JavaPorter
博客等级 码龄7年 10粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值