Groovy 与 DSL】的更多相关文章

引子 我们用一段gradle的脚本做引子,理解这一段脚本与一般的groovy代码是怎么联系起来的 buildscript { repositories { jcenter() mavenLocal() //或者使用指定的本地maven 库 maven{ url "file://D:/repo" } } dependencies { classpath 'com.android.tools.build:gradle:1.2.3' } } DSL的定义 DSL(Domain Specifi…
一:DSL 概念 指的是用于一个特定领域的语言(功能领域.业务领域).在这个给出的概念中有 3个重点: 只用于一个特定领域,而非所有通用领域,比如 Java / C++就是用于通用领域,而不可被称为 DSL,同样也不可把 Groovy称为 DSL. 语言,必须经过编写后才可发挥它的功能.比如:五线谱编写后成乐谱: ANT编写用于编译: SVN命令编写后可对资源库进行操作: Shell编程: SQL编程: PL-SQL编程等等. 忽略具体的运行环境(媒介),可以是纸. XML文件.命令行. She…
DSL(Domain Specific Language)是针对某一领域,具有受限表达性的一种计算机程序设计语言. 常用于聚焦指定的领域或问题,这就要求 DSL 具备强大的表现力,同时在使用起来要简单.由于其使用简单的特性,DSL 通常不会像 Java,C++等语言将其应用于一般性的编程任务. 对于 Groovy 来说,一个伟大的 DSL 产物就是新一代构建工具--Gradle,接下来让我们看下有哪些特性来支撑Groovy方便的编写DSL: 一.原理 1.闭包 官方定义是"Groovy中的闭包是…
一直很喜欢脚本语言,但是一直在不大的公司工作,用得一直是“高大上”的JAVA语言,在真正的项目中,没什么机会用到脚本语言.这两年,又断断续续的用了2年的Ruby,再回头继续用JAVA,说实话,真感觉JAVA语法的啰嗦——哪怕像C#那样多些语法糖也好. 虽然在JVM上也有像JRuby,scala那样的动态语言,不知道怎么的,就是不想去用,直到最近心血来潮看了一下Groovy,突然被吸引住了,原因,一开始估计是被他的全兼容JAVA语法所吸引,再慢慢稍微了解一下,也被他类似Ruby的语法,动态特性,与…
在本文中将会涉及到: 使用 CliBuilder 来实现对命令行选项的支持,脚本执行时所需要的参数将通过命令行选项的方式传递. 使用 GroovyClassLoader 加载 Groovy class. 使用 AntBuilder 来构建 Jar 包. 开始之前 关于本文 也许您写了一些有趣或实用的 Groovy 脚本并希望与您的朋友分享,可是您并不想强迫他们安装 Groovy,所以您也许想要做一个小工具让您的朋友们能够用它编译您的 Groovy 脚本并且生成一个可执行的 Jar 包.本文将介绍…
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://github.com/jiangxincode 知乎地址: https://www.zhihu.com/people/jiangxinnju 首先说明一下为什么要写这样一系列分析Groovy实现原理的博文.我之前在华为大数据部门曾维护过一份规则引擎的项目,该项目说白了就是一种DSL(Domain Sp…
如何在Maven和Gradle中配置使用Groovy 2.4与Spock 1.0 原文 https://dzone.com/articles/spock-10-groovy-24 翻译 hxfirefox Maven Maven无法天然支持除Java外的其他JVM语言,例如Groovy或Scala.想要在Maven中使用Groovy/Spock,需要引入第三方插件.对于Groovy,最佳选择是GMavenPlus,另一个选择是使用Groovy-Eclipse编译器的插件,不过这种插件不使用官方g…
Groovy 简介 Groovy 是一种基于 JVM 的动态语言,他的语法和 Java 相似,最终也是要编译 .class 在JVM上运行. Groovy 完全兼容 Java 并且在此基础上添加了很多动态类型和灵活的特性,比如支持闭包,支持DSL,是一门非常灵活的动态脚本语言. 这篇文章是为了能看懂在 Gradle脚本中的代码,知道怎么写.所以不会深入Groovy. 每个 build 脚本配置文件都是一个 Groovy脚本文件.在里面可以写任何符合 Groovy 语法的代码. 例如定义类,方法,…
1.Hello, Kotlin Bugly 技术干货系列内容主要涉及移动开发方向,是由 Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 1.1 Kotlin的身世 写了许久Java,有没有发现其实你写了太多冗余的代码? 后来你体验了一下Python,有没有觉得不写分号的感觉真是超级爽? 你虽然勤勤恳恳,可到头来却被NullPointerException折磨的死去活来,难道就没有受够这种日子么? 直到有一天你发现自己已经写了好几十万行代…
写作是一件苦差事.无论写代码,还是写文章. 关于 Mac 应用开发,国内很少有完整的书籍或教程.最近@剑指人心写的 <Mac 应用开发基础教程>终于!完!稿!了! 这本书中对 Mac 平台中应用开发的 AppKit 系统控件做了详细介绍与示例说明,也包涵 Mac 开发常用的公用组件,系统框架,生产力工具,经典的开源项目以及实践经验等,帮助开发者多纬度去理解和掌握 Mac 平台的应用开发. 如果对 Mac App 开发感兴趣,去这里看看这本书. 除此之外,本期 fir.im Weekly ,一如…
转自:NO END FOR LEARNINGhttp://benweizhu.github.io/blog/2015/01/31/deep-into-gradle-in-action-1/ 什么是构建工具? 一个可编程的工具,能够以可执行和有序的任务来表达满足需要的自动化过程. 以Java为例,要得到一个简单可运行的Jar文件,需要下面几步: 1.编译源代码2.运行测试(前提是你有测试) 3.拷贝Class文件到目标目录4.打包Class文件为Jar文件 这是一个完整的可自动化的过程,在没有构建…
.本文记录Java中几种常用的日志解决方案 0x01 Log4j .这应该是一个比较老牌的日志方案了,配置也比较简单,步骤如下 1)添加对应依赖,比如 Gradle 中 dependencies { compile('log4j:log4j:1.2.17') testCompile group: 'junit', name: 'junit', version: '4.11' } 2)配置一个 log4j.properties,用来指定一些信息,比如配置输出路径.格式(appender相关)等 #…
原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Using-sourceCompatibility-1.7 翻译:Android Studio 中文组(大锤译) 鉴于Android Studio使用Gradle构建项目,在IDE的使用过程中可能会遇到很多令人头疼的问题.大锤也是第一次接触,为有个基本的认识,特找来Android官方手册,和大家一起学习学习.翻译不当之处,望指出. 为什么要用Gradle…
原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Using-sourceCompatibility-1.7翻译:Android Studio 中文组(大锤译) 鉴于Android Studio使用Gradle构建项目,在IDE的使用过程中可能会遇到很多令人头疼的问题.大锤也是第一次接触,为有个基本的认识,特找来Android官方手册,和大家一起学习学习.翻译不当之处,望指出. 为什么要用Gradle?…
2.1. Features //gradle特性 Here is a list of some of Gradle's features. Declarative builds and build-by-convention At the heart of Gradle lies a rich extensible Domain Specific Language (DSL) based on Groovy. Gradle pushes declarative builds to the nex…
This article is From :http://www.android-studio.org/index.php/docs/guide Gradle使用手册(一):为什么要用Gradle? 用户评价:  / 104 最后更新于 2013年11月09日 点击数:43172 原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Using-sourceCompatibility-1.7翻译:Andro…
认识Webpack   网上已经有不少Webpack教程入门教程了. 本文记录了我以我的方式方法.思路认识了解Webpack.从官方的Tutorial入手,不断提出问题.解决,一步一步认识Webpack. 从早期的自己写脚本,到现在的各种构建工具,前端工程化已经发展到新的阶段了. 早先在百度地图的时候,地图代码用PHP进行简单粗放的处理.这个阶段算是最原始的自己写脚本处理.后来我用Ruby写了一套集合了开发.动态合并.mock数据.一键build的工具.这算是更进了一步. 现在基于Nodejs的…
参考:             http://www.gradle.org/docs/current/userguide/installation.html (1)下载Gradle 官网下载www.gradle.org/get-started (2)将GRADLE_HOME/bin/加入$PATH. 将解压,得到gradle-1.8,然后拷贝到/usr: 输入sudo  cp -r gradle-1.8 /usr 添加环境变量方法:输入sudo gedit /etc.profle 在/etc/p…
Gradle是基于Groovy的DSL基础上的构建工具,Gradle中的闭包,其原型上实际上即Groovy中闭包.而在表现形式上,其实,Gradle更多的是以约定和基于约定基础上的配置去展现.但本质上,大多数配置,实际上都对应着闭包以及闭包的具体使用. 例如,实际Android项目中,我们经常看到类似如下的所谓配置项: allprojects { repositories { mavenLocal() maven { url 'http://maven.aliyun.com/nexus/cont…
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具.它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML.当前其支持的语言限于Java.Groovy和Scala,计划未来将支持更多的语言. 1.可表达性的构建语言 在Gradle脚本中每一个元素都有一个与Java类一对一的映射.在许多情况下Groovy化的类相对于Java,代码更加简洁,并且允许使用如闭包这样的新语言特性. 2.Gradle就是Groovy Ant和maven这样杰出…
在使用android studio开发android程序时,as就是基于gradle进行构建的,我们只需要通过run就可以编译.打包.安装,非常方便,但是究竟gradle是什么呢?  一.java构建工具 首先,我们得知道什么是构建工具.实际上,构建工具是一个可编程的工具,它可以帮助我们执行有序的任务,实现工程的自动化,而减少甚至避免不必要的手动操作,即构建工具是一个工具,它就是解放生产力,提高效率的. 在前端中,webpack就是一个构建工具,它不仅仅可以打包,还可以完成测试.热更新.部署.检…
Spring Boot Reference Guide Authors Phillip Webb, Dave Syer, Josh Long, Stéphane Nicoll, Rob Winch, Andy Wilkinson, Marcel Overdijk, Christian Dupuis, Sébastien Deleuze, Michael Simons, VedranPavić, Jay Bryant 2.0.0.BUILD-SNAPSHOT Copyright © 2012-20…
本文转自:http://www.flysnow.org/2015/03/30/manage-your-android-project-with-gradle.html Gradle简介 Gradle 是一个基于Ant和Maven概念的项目自动化建构工具.它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,这比我们的ANT使用XML构建配置要灵活的多.在编写配置时,你可以像编程一样灵活,Gradle是基于Groovy的DSL语言,完全兼容JAVA Gradle入门 projects…
V2: http://hl7book.net/index.php?title=HL7_version_2 包括HL7 的介绍,主要章节,每个版本的变化, 各种语言实现的HL7库,免费HL7工具, 最新的xml schema, 实现指南, IHE中相关章节(PIX),以及 hl7相关blog等等. HL7 version 2 From Hl7book Jump to: navigation, search The HL7 version 2 standard has the aim to supp…
一.Gradle 简介 1.1 什么是 Gradle?   Gradle 是一个基于 Apache Ant 和 Apache Maven 概念的 项目自动化构建开源工具.它使用一种基于Groovy的DSL(Domain-Specific Language 领域特定语言)来声明项目设置,抛弃了基于 XML 的各种繁琐配置.面向 Java 应用为主.当前其支持的语言限于Java.Groovy.Kotlin 和 Scala,计划未来将支持更多的语言.   Gradle 是一个基于 JVM 的构建工具,…
基于XML配置 Bean的定义:           在XML文件中通过<bean>元素定义. Bean的名称:           通过<bean>的id或name属性定义. Bean的注入:           通过<property>子元素或通过p命名空间的动态属性. Bean生命过程方法:通过<bean>的init-method和destory-method属性指定Bean实现类的方法名.最多只能指定一个初始化方法和一个销毁方法. Bean作用范围:…
Gradle构建脚本,内部是基于 Groovy 的 DSL(领域特点语言),而Maven是基于XML的,Groovy相比XML更加简洁.灵活和强大. Groovy 因为给 Java 开发人员提供了最大的透明度,对于Java开发人员来说门槛很低,所以Gradle的重点是Java项目.这篇不是介绍Groovy的文章,对于Gradle应该要了解一些Groovy的知识,比如闭包,在Gradle构建任务是就是经常用到的.建议在此之前先看完Groovy基础章节.好了,下面言归正传. Gradle 里的任何东…
1.Summary   从Android团队开始宣布放弃Eclipse转投Android Studio时,构建工具Gradle进入了Android开发者的视野.而随着热修复.插件化.编译时注解的流行,深入了解Gradle就变得很有必要了.那么什么是Gradle ? 2.About   Gradle是一个基于Ant构建工具,用Groovy DSL描述依赖关系的jar包.我们都知道早期的Android开发使用的是Eclipse,而Eclipse的构建工具使用的是Ant,用XML描述依赖关系,而XML…
介绍 转载自:https://www.gitbook.com/book/qbgbook/spring-boot-reference-guide-zh/details 带目录浏览地址:http://www.maoyupeng.com/spring-boot-api.html 1.Spring Boot文档 本节提供一个Spring Boot参考文档的简明概述.你可以把它作为文档其余部分的导航.你可以从头到尾依次阅读该参考指南,或跳过你不感兴趣的章节. 1.1关于本文档 Spring Boot参考指…
Spring Boot CLI 是用于快速开发 Spring 应用的命令行工具.用来运行 Groovy (与 Java 风格类似)脚本. spring-cli 似乎不是可以各种diy spring-boot程序命令行参数.行为的工具,而是执行 groovy 脚本来快速达到一些效果. 版本 SpringBoot-2.2.0.RELEASE 安装 从官网下载 spring-cli 安装,然后将bin目录配置环境变量. 安装完成可通过 spring version 查看版本. 使用 用 CLI 运行应…