zoukankan      html  css  js  c++  java
  • 学习Gradle以及Groovy

    学习了邓大佬的gradle文章,人家也对得起深入理解几个字了,首先讲了groovy这门语言就是Java系的语言,
    相较于Java最大的不同就是闭包,由于这个特性不习惯写这些东西的还是比较难理解的,
    邓说可以理解成c/c plus那种函数指针groovy里面的闭包定义是一个大括号{},而当你使用闭包的时候可以省掉(),
    因此有些方法看不到他的闭包,例如list的 list.each{ it - > println(it) } 实际上each里面就有一个闭包
    ,这种语法也和kotlin差不多,kt也是这玩意,看起来令人费解接着又讲到grdle执行的都是很多plugin,
    这些plugin都是由各种task组成的,编译时期会先构建一个task 或者 plugin之间的依赖有向图,根据图依次往下执行不同的task
    他举例她自己写的util gradle,apply是gradle的一个方法,他的实现也是闭包,
    gradle编译的时候会产生gradle对象和project对象,他们分别有自己的属性等,
    gradle是一个编译框架和make类似等,主要构成是task和transform,task就是我们经常执行的一些任务, 例如:gradle clean
    transform过程则是在于gradle的编译过程等其中, 主要阶段就是: init - > config - > exec
    而你可以在这些过程中增加自己的个性化操作,例如使用asm字节码插桩搞一些自定义的东西,例如打点,统计,log等等,
    这些因为都是构建期,所以你可以动态加进去任何你想要的东西,这些主要就是继承transform去实现在before或者after增加东西或者过程等等
    gradle有一些语法 <= 这种就意味着 dolast在某一个action的最后执行这玩意,相当于gradle的语法糖?
    这糖md不好吃啊。在闭包里如果不加这个就会优先执行,相当于dofirst执行的这个action。。
    实际上通读下来人家的文章,发现人家的学习方法就是查询官方文档,查询对应api等等,另外也体现了人家基本功的扎实,
    学习这些其实都是一同百通的,各种语言看起来眼花缭乱,除了特异性,共通之处其实更多,最主要的是思想,
    Java kt groovy dart py c plus 等等,基础好了,分析出来语言的必备要素,其实都差不了太多
  • 相关阅读:
    5个JavaScript的字符串处理库
    一款在线还款记账产品诞生实战
    企业级B端产品:如何建立一致性设计规范和度量标准?
    15个产品与交互必懂的技术用语!
    利润的来源:会员权益的前置和后置
    为什么设计工作总是感觉很被动?
    中国服装业首次负增长背后,是设计垄断权引领需求的逻辑失效
    怎么样写出卖货文案?试试加一点“想象力”
    SublimeText 3200 package Control 安装
    FlappyBirdWeb素材资源
  • 原文地址:https://www.cnblogs.com/pjex/p/11507852.html
Copyright © 2011-2022 走看看