gradle教程(一)

举报
yd_221104950 发表于 2020/12/03 00:20:35 2020/12/03
【摘要】 Gradle是用Groovy语言编写的。 gradle命令会在当前目录下找到build.gradle文件。build.gradle文件被称为一个构建脚本, 1、创建名为build.gradle的文件 2、在build.gradle文件中加入如下内容: 定义一个名为hello的任务,入面加入一个Groovy写的动作。 task hello{ doLast{ printl...

Gradle是用Groovy语言编写的。
gradle命令会在当前目录下找到build.gradle文件。build.gradle文件被称为一个构建脚本,
1、创建名为build.gradle的文件
2、在build.gradle文件中加入如下内容:
定义一个名为hello的任务,入面加入一个Groovy写的动作。

task hello{ doLast{ println 'Hello world' }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

上面的代码还可简写成:

task hello << {
	println 'Hello world!'
}

  
 
  • 1
  • 2
  • 3

“<<”是doLast和符号。

3、在build.gradle所在目录下,执行gradle -a hello命令:
这个命令会执行当前目录下的build.gradle里的hello任务。

~/Desktop/gr$ gradle -a hello
Starting a Gradle Daemon, 2 incompatible Daemons could not be reused, use --status for details

> Task :hello
Hello world

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

其他例子

  • 添加一个依赖项,依赖项可以不存在。
task taskX(dependsOn:'taskY'){ doLast{ println 'taskX' }
}

task taskY{ doLast{ println 'taskY' }
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

运行结果:

~/Desktop/gr$ gradle -a taskX

> Task :taskY
taskY

> Task :taskX
taskX

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 动态创建任务
4.times { counter ->
	task "task$counter"{
		doLast{ println "I'm task number $counter"
		}
	}
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

运行结果:

~/Desktop/gr$ gradle -q task0
I'm task number 0
~/Desktop/gr$ gradle -q task1
I'm task number 1
~/Desktop/gr$ gradle -q task2
I'm task number 2
~/Desktop/gr$ gradle -q task3
I'm task number 3

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • Gradle允许你为你的构建定义一个或多个默认任务
defaultTasks 'clean','run'
task clean { doLast{ println 'Default Cleaning!' }
}
task run { doLast{ println 'Default Running!' }
}  

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

运行结果:

~/Desktop/gr$ gradle -a

> Task :clean
Default Cleaning!

> Task :run
Default Running!

BUILD SUCCESSFUL in 0s
2 actionable tasks: 2 executed


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在一个多项目构建中,每个子项目能够有它自己指定的默认任务。如果一个子任务不指定默认任务,将会使用父项目中已定义的默认任务。

  • 不同的构建结果取决于选择的构建任务
task distribution{ doLast{ println "We build the zip with version=$version" }
}
task release(dependsOn:'distribution'){ doLast{ println 'We release now' }
}
task debug(dependsOn:'distribution'){ doLast{ println 'Debug now ' }
}

gradle.taskGraph.whenReady{ taskGraph -> if(taskGraph.hasTask(release)){ version = '1.0' }else{ version = '1.0-SNAPSHOT' }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

运行结果:

~/Desktop/gr$ gradle -q release
We build the zip with version=1.0
We release now
~/Desktop/gr$ gradle -q debug
We build the zip with version=1.0-SNAPSHOT
Debug now 


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

谢谢阅读

文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_40763897/article/details/103517493

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。