gradle教程学习笔记(一)

简介: gradle教程学习笔记(一) gradle是一个很不错的东西,前段在公司,项目大神用gradle脚本规划了整个项目的结构,这个东西确实很强大,之前学过一些maven,这两个东西其实也差不多原理的。

gradle教程学习笔记(一)

gradle是一个很不错的东西,前段在公司,项目大神用gradle脚本规划了整个项目的结构,这个东西确实很强大,之前学过一些maven,这两个东西其实也差不多原理的。废话不多说这个也只是我的一个学习笔记而已,

gradle来说任何东西在gradle上都是两个基本的概念,项目和任务,gradle在构建一个或者多个项目,这些项目被一个多或者多任务进行构建,他可以被编译成class文件,jar包,生成javadoc等。下面是一个hello world的脚本,

build.gradle

[plain] view plain copy

  1. task hello{
  2.         doLast{
  3.                 println "hello world"
  4.         }
  5. }

在目录下敲入命令gradle -q hello,就能够输出hellowrold 这里-q参数的意思是显示log的信息,其实这里是groovy来进行执行的,虽然我还没学groovy 但是语法几乎和java差不多,很简单。

任务一:定义一个任务,然后在里面写groovy的代码

[plain] view plain copy

  1. task upper << {
  2.         String str = "hello WORLD"
  3.         println "Original: "+ str
  4.         println "Upper case: "+str.toUpperCase()
  5. }

输入命令 gradle -q upper 就会看到字母变成了大写字母

任务二:任务依赖

在执行一个任务B之前,可以定义一个任务A,让A先执行 gradle  -q intro

[plain] view plain copy

  1. task upper << {
  2.         String str = "hello WORLD"
  3.         println "Original: "+ str
  4.         println "Upper case: "+str.toUpperCase()
  5. }
  6. task intro(dependsOn: upper)<<
  7. {
  8.         println "end"
  9. }

 

任务三:动态任务

在执行命令的动态的给任务添加参数   执行命令 gradle -q task2  这个时候2就会附加到输出内容里面去

[plain] view plain copy

  1. 4.times { counter->
  2.         task "task$counter" <<{
  3.                 println "i am task number $counter"
  4.         }
  5. }

任务四:操作已经存在的任务

意思就是能够调用其他任务,因为我们定义的是任务0调度其他任务这里就需要输入 gradle -q task0

[plain] view plain copy

  1. 4.times { counter->
  2.         task "task$counter" <<{
  3.                 println "i am task number $counter"
  4.         }
  5. }
  6. task0.dependsOn task2,task3

结果可以自己运行一下

任务四:内部调度函数

自己内置了一些函数,在不同的时期进行调用,输入命令 gradle  -q helo

[plain] view plain copy

  1. task hello << {
  2.     println "hello Earth"
  3. }
  4. hello.doFirst {
  5.     println "hello Venus"
  6. }
  7. hello.doLast {
  8.     println "Hello Mars"
  9. }
  10. hello << {
  11.     println "hello Jupiter"
  12. }

可以看到如下结果

hello Venus

hello Earth

Hello Mars

hello Jupiter

任务五:访问任务的属性

 这里在任务内部定义了一个属性, 其他任务可以进行访问 我就不写命令了,基本都是一样的命令

[plain] view plain copy

  1. task myTask{
  2.     ext.myProperty="value"
  3. }
  4. task printTask << {
  5.     println myTask.myProperty
  6. }

任务六:遍历文件

dsf是脚本对于的目录下的文件,脚本感觉是jquery和java的合体

[plain] view plain copy

  1. task loadfile << {
  2.     def files = file("dsf").listFiles().sort()
  3.     files.each {
  4.         File file -> if(file.isFile()){
  5.             println "** $file.name **"
  6.         }
  7.     }
  8. }

 

任务六:定义默认调用的方法

这个时候执行命令 gradle -q  后面不需要加入参数就会调用默认的两个方法,other不会被调用,相反如果你加了指定的task之后,默认的就不会被调用

[plain] view plain copy

  1. defaultTasks 'clean', 'run'
  2. task clean << {
  3.     println "default clean"
  4. }
  5. task run << {
  6.     println "default run"
  7. }
  8. task other << {
  9.     println "other method"
  10. }

 原文地址http://www.bieryun.com/2046.html

相关文章
|
Java Linux Shell
Gradle下载和配置教程:Windows、Mac和Linux系统安装指南
Gradle下载和配置教程:Windows、Mac和Linux系统安装指南
1120 0
IDEA 降级gradle插件教程
IDEA 降级gradle插件教程
1334 0
IDEA 降级gradle插件教程
|
XML 缓存 搜索推荐
Gradle构建工具极简教程
Gradle构建工具极简教程
344 0
Gradle构建工具极简教程
|
开发工具 Android开发
Android SMSSDK非Gradle集成教程
一、说明(1)3.x与之前的旧版本互不兼容,请严格按照本文档进行3.x的首次集成或老版本的升级操作。(2)3.x之前版本的集成,请参考:http://wiki.mob.com/android-%e7%9f%ad%e4%bf%a1sdk%e9%9b%86%e6%88%90%e6%96%87%e6%a1%a3/–>集成之前先要申请Mob的appkey与appsecret;申请完添加短信SDK的产品;得到key我们开始集成;二、获取SDK请至Mob官网下载最新SDK,解压后会看到以下目录结构:SMSSDK下存放的是短信SDK的全部内容。
1513 0
|
jenkins 应用服务中间件 持续交付
Jenkins +Gradle实现Android自动化构建(学习笔记三十二)
https://blog.csdn.net/mabeijianxi/article/details/52680283 http://www.liuling123.com/2016/10/jenkins-gradle-auto-build.html Jenkins简介 Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
2674 0
|
Java Apache Scala
Gradle学习笔记(1)创建简单的Java项目
  Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。
1054 0
|
JavaScript Java Maven
《Kotin 极简教程》第12章 使用 Kotlin 集成Gradle 开发
第12章 使用 Kotlin 集成Gradle 开发 《Kotlin极简教程》正式上架: 点击这里 > 去京东商城购买阅读 点击这里 > 去天猫商城购买阅读 非常感谢您亲爱的读者,大家请多支持!!!有任何问题,欢迎随时与我交流~ 由于 Kotlin 具有丰富的功能,如一等函数和扩展方法等,因此它可以保留和改进 Gradle 构建脚本的最佳部分——包括简明的声明式语法以及轻松制作 DSL 的能力。
2035 0
《Groovy极简教程》第7章 Groovy与Gradle
《Groovy极简教程》第7章 Groovy与Gradle
992 0