Gradle快速

Gradle强大的编译能力和构建能力足以胜任日常中的开发,很多人将其视为maven的替代方案,至于用maven还是用Gradle这个根据各人喜爱或团队要求来决定。

Gradle快速查看指南

官网提供:https://docs.gradle.org/current/dsl/index.html

Gradle常用命令列表

[java]  view plain  copy
  1. gradle build  
  2. gradle test  
  3. gradle compilejava  
  4. gradle jar  
  5. gradle clean  
  6. gradle jar  
  7. gradle init  
  8. //生成wrapper包  
  9. gradle wrapper  
  10. gradle compilejava  
  11. gradle javadoc  
  12. gradle dependencies  
  13. gradle help  
  14. gradle check  
  15. gradle test  
  16. gradle -v  
  17. gradle --info  
  18. gradle --debug  
  19. gradle --help  
  20. //列出可执行的所有任务(即查看可以执行的命令)  
  21. gradle tasks  
  22. gradle -q tasks  

包的依赖

[java]  view plain  copy
  1. dependencies {  
  2.     compile group: 'commons-collections', name: 'commons-collections', version: '3.2'  
  3.     testCompile group: 'junit', name: 'junit', version: '4.+'  
  4. }  

依赖仓库

[java]  view plain  copy
  1. repositories {  
  2.     mavenLocal()  
  3.     mavenCentral()  
  4. }  

Gradle任务操作

====以下内容转载自:http://blog.csdn.net/jjwwmlp456/article/details/41350413

新建一个build.gradle文件,以下示例都编辑在build.gradle中。

说明:> 后 跟gradle命令。 -q参数会关闭一些命令中的log信息,如 gradle -q hello

定义一个任务,并执行

[java]  view plain  copy
  1. task hello {  
  2.     doLast {  
  3.         println 'Hello world!\nadmin'  
  4.     }  
  5. }  

> gradle hello

定义一个快捷任务

[java]  view plain  copy
  1. task hello2 << {  
  2.         println 'admin\nHello world!'  
  3.       
  4. }  

> gradle hello2

<< 代表 doLast{}

使用Groovy 语言

[java]  view plain  copy
  1. task upper << {  
  2.     String someString = 'mY_nAmE'  
  3.     println "Original: " + someString   
  4.     println "Upper case: " + someString.toUpperCase()  
  5. }  
> gradle upper

循环遍历

[java]  view plain  copy
  1. task foreach << {  
  2.     10.times { println "the times is $it." }  
  3. }  

> gradle foreach

10.times,循环条件<10;$it 表示循环变量

依赖其他任务

[java]  view plain  copy
  1. task intro(dependsOn: hello) << {  
  2.     println "I'm Gradle---intro"  
  3. }  
> gradle intro

依赖任务hello,会先调用hello,再执行当前task

依赖的任务定义在当前任务之后

[java]  view plain  copy
  1. task taskX(dependsOn: 'taskY') << {  
  2.     println 'taskX'  
  3. }  
  4. task taskY << {  
  5.     println 'taskY'  
  6. }  

> gradle taskX

依赖定义在后面的任务,需要在任务名上加单引号。 而上一个例子,加不加单引号都可以

动态任务

[java]  view plain  copy
  1. 4.times { counter ->  
  2.     task "task$counter" << {  
  3.         println "I'm task number $counter"  
  4.     }  
  5. }  
> gradle task[0-4]

循环四次,生成4个task, 任务名分别为task0,task1,task2,task3。


动态任务依赖动态任务

[java]  view plain  copy
  1. task0.dependsOn task2, task3  
> gradle task0

当然动态依赖静态,静态依赖动态都是可以的

符号<< 和 doFirst、doLast

[java]  view plain  copy
  1. task hello3 << {  
  2.     println 'Hello Earth'  
  3. }  
  4. hello3.doFirst {  
  5.     println 'Hello Venus'  
  6. }  
  7. hello3.doLast {  
  8.     println 'Hello Mars'  
  9. }  
  10. hello3 << {  
  11.     println 'Hello Jupiter'  
  12. }  
> gradle hello3

可以有多个doFirst和doLast(或<<)。doFirtst先执行,doLast在其后。这里顺序就应为:Venus、Earth、Mars、Jupiter

使用外部任务的属性

[java]  view plain  copy
  1. task myTask {  
  2.     ext.myProperty = "myValue"  
  3. }  
  4. task extraProps << {  
  5.     println myTask.myProperty  
  6. }  
> gradle extraProps

使用ant任务

[java]  view plain  copy
  1. task loadfile1 << {  
  2.     def files = file('../builds').listFiles().sort()  
  3.     files.each { File file ->  
  4.         if (file.isFile()) {  
  5.             ant.loadfile(srcFile: file, property: file.name)  
  6.             println " *** $file.name ***"  
  7.             println "${ant.properties[file.name]}"  
  8.         }  
  9.     }  
  10. }  
> gradle loadfile1

调用任务ant.properties。这里输出了文件的内容

使用ant任务,并调用了Method

[java]  view plain  copy
  1. task checksum << {  
  2.     fileList('../builds').each {File file ->  
  3.         ant.checksum(file: file, property: "cs_$file.name")  
  4.         println "$file.name Checksum: ${ant.properties["cs_$file.name"]}"  
  5.     }  
  6. }  
  7. task loadfile2 << {  
  8.     fileList('../builds/').each {File file ->  
  9.         ant.loadfile(srcFile: file, property: file.name)  
  10.         println "I'm fond of $file.name"  
  11.     }  
  12. }  
  13. File[] fileList(String dir) {  
  14.     file(dir).listFiles({file -> file.isFile() } as FileFilter).sort()  
  15. }  
  16.   
  17. > gradle loadfile2  
  18.   
  19. > gradle checksum  
声明了method ---- fileList()

默认任务 

[java]  view plain  copy
  1. defaultTasks 'clean''run'  
  2.   
  3. task clean << {  
  4.     println 'Default Cleaning!'  
  5. }  
  6. task run << {  
  7.     println 'Default Running!'  
  8. }  
  9. task other << {  
  10.     println "I'm not a default task!"  
  11. }  
  12.   
  13. > gradle  
后不跟任务名即 执行默认任务

Configure by DAG

[java]  view plain  copy
  1. task distribution << {  
  2.     println "We build the zip with version=$version"  
  3. }  
  4. task release(dependsOn: 'distribution') << {  
  5.     println 'We release now'  
  6. }  
  7. gradle.taskGraph.whenReady {taskGraph ->  
  8.     if (taskGraph.hasTask(release)) {  
  9.         version = '1.0'  
  10.     } else {  
  11.         version = '1.0-SNAPSHOT'  
  12.     }  
  13. }  

> gradle distribution

运行任务图中没有release-task,输出 We build the zip with version=1.0-SNAPSHOT

> release

运行任务图中有release-task,输出 We build the zip with version=1.0

===以上内容转载自:http://blog.csdn.net/jjwwmlp456/article/details/41350413

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值