Groovy、Gradle
李樟清
为了在装逼的路上越走越远
展开
-
Groovy01_介绍
1. 构建工具 Gradle管理项目的整个周期: 依赖,编译,测试,发布。构建文件 build.gradle 包含了构建所需要的配置、外部依赖以及以任务形式实现某个特殊目的的指令和它们的依赖关系构建引擎 相当于翻译构建文件 处理声明的依赖定义,从它预定义或者配置指定的仓库中去获取它们,并使它们对项目可用。 依赖管理 处理声明的依赖定义,从它预定义或者我们指定的仓库中去获取它...原创 2018-04-03 10:17:30 · 210 阅读 · 0 评论 -
Groovy12_Json、xml、swing与生成器
1. Json 生成器 : JsonBuilderimport groovy.json.JsonBuilderimport groovy.json.JsonOutputimport groovy.json.JsonSlurper""""""// json 生成器def builder = new JsonBuilder()builder.json{ first '..原创 2018-05-16 22:49:16 · 293 阅读 · 0 评论 -
Groovy10_元编程(方法合成与委托)
1. 创建动态类// 1. 创建一个动态类// 在运行的时候创建一个类(动态类)def expand = new Expando(name:'hello',fun1:{"fun1"})expand.height = 100expand.fun2 = { "fun2"}println expand.nameprintln expand.heightprintln e...原创 2018-04-24 22:24:48 · 276 阅读 · 0 评论 -
Groovy09_MOP与元编程(方法注入)
现在讲的都是运行时元编程,而编译时元编程 比如 ButterKnife 使用AOP,进行事件和View的寻找和绑定 运行时元编程,方法注入 3中方式category 分类注入 (和继承类似)meteclass (ExpandoMetaClass)使用mixin 混合(和category类似,创建一个类,混合进要使用的对象中去, 这样我们就能使用这个对象本身的这个类型,没有的方法)...原创 2018-04-24 00:05:52 · 681 阅读 · 0 评论 -
Groovy08_MOP与元编程(方法拦截) ```
// java当中我们可以使用反射在运行的时候查看类的结构方法成员属性,// 但是不能修改一个类的实现,不能动态的往类中去注入一个方法// 而Groovy利用MOP元编程,可以做到这些,可以基于应用当前的状态,// 动态的添加或者改变一些类的对象的方法和行为// 比如一个类的一个方法我们没有写实现,可以通过服务器下发,吧这个方法的实现替换掉或者把里面的成员属性替换掉// 由终端或者控制台...原创 2018-04-17 23:08:33 · 242 阅读 · 0 评论 -
Groovy07_Groovy动态语言
动态类型语言中的类型是在运行时判断的,方法以及其实参也是在运行时检查的。 在使用过程中不会执行类型检查,可以通过TypeChecked开启类型检查。 同时由于使用动态节点调用,损耗性能,可以使用CompileStatic开启静态编译。1. 和java的差异groovydef i = new File("")println i.getParent()javap...原创 2018-04-17 22:33:10 · 243 阅读 · 0 评论 -
Groovy06_Groovy方法扩展与脚本调用
1. Groovy方法扩展1. 用Socket 来引出今天的内容server.groovy//线程 流def server = new ServerSocket(9999)def isRunning = truedef sockets = []def close(socket) { if (null != socket) { if (!...原创 2018-04-17 22:16:55 · 1211 阅读 · 0 评论 -
Groovy05_Groovy方法调用与运算符重载
1. Groovy方法调用// groovy方法调用class Person{ def name def age def getName() { println 'getName' return name } void setName(name) { println 'setName' ...原创 2018-04-16 23:22:04 · 537 阅读 · 0 评论 -
Groovy04_闭包
1. 闭包的基本定义和调用ls4_0.groovy// 1. 闭包def closure = { println 'grovvy'}println closure.getClass() // class lsn4_0$_run_closure1// 2. 调用闭包closure.call() // grovvyclosure() ...原创 2018-04-16 22:46:53 · 135 阅读 · 0 评论 -
Groovy03_集合
lsn3_Groovy集合1. List快捷的创建方式:[] 通过下标获取元素 更精简迭代方式 each collect 更精简的加入条目 << 展开操作符 *. 常用扩展:any every// 1.list// Java 写法def lst = new ArrayList()def lst2 = []println...原创 2018-04-03 17:20:35 · 229 阅读 · 0 评论 -
Groovy02_字符串与循环
1. 字符串字符串 单引号与双引号的区别 (使用闭包时候惰性求值) 多行字符串 对字符串类型的一些扩展 (execute、find)class lsn_2_0 { static String test(){ // 这是java的写法 //return "111" // 但是在Groovy当中,无论是我们的函数还是我们...原创 2018-04-03 14:20:28 · 590 阅读 · 0 评论 -
Groovy11_编译时元编程
利用ASTTransformation 来实现1. ASTTransformation 介绍lsn11_0.groovyclass Content{ def a; def b(){ }}println()MyASTTansformation.groovyimport org.codehaus.groovy.ast.ASTNode...原创 2018-05-05 17:34:49 · 957 阅读 · 0 评论