Groovy
gradle
构建脚本使用的 groovy
语言编写.
官方地址:
http://groovy-lang.org/documentation.html
API文档地址:
http://groovy-lang.org/api.html
API扩展文档地址:
http://groovy-lang.org/gdk.html
Gradle
官方文档: https://docs.gradle.org/current/userguide/userguide.html
接口/对象 | 默认实现 |
---|
project | org.gradle.api.internal.project.DefaultProject |
project.tasks | org.gradle.api.internal.tasks.DefaultTaskContainer |
task | org.gradle.api.DefaultTask |
任务类型(task type) | 默认实现 |
---|
type: Jar | org.gradle.api.tasks.bundling.Jar |
type: Copy | org.gradle.api.tasks.Copy |
type: Zip | org.gradle.api.tasks.bundling.Zip |
type: Delete | org.gradle.api.tasks.Delete |
type: Exec | org.gradle.api.tasks.Exec |
… | println it.class |
task
官方介绍:
https://docs.gradle.org/current/dsl/org.gradle.api.Task.html
声明一个task
task _test1(){
}
声明一个带type
的task
task _test2(type: Jar){
}
所有可用type
声明一个带有依赖的task
task _testTask(dependsOn: ['compileApkReleaseJavaWithJavac'], type: Jar) {
}
动态创建一个task
def newTask = project.tasks.create("newTask")
newTask.doFirst {
println "new task first." + it.name
}
newTask.doLast {
println "new task last." + it.name
}
project.tasks.add(newTask)
task
的3个阶段
task _testTask()
doFirst{
println "task first."
}
doLast{
println "task last."
}
println "task配置结束."
}
- 配置阶段, 任何时候都会执行
- First阶段, 任务运行最开始会执行
- Last, 任务运行最后面会执行
监听task``事件
监听task
添加
task _testTask() {
project.tasks.whenTaskAdded {
println "添加任务:" + it.name + ":" + it.class + ":" + it
}
}
示例
正则匹配目标task
, 追加命令
task _testTask() {
project.tasks.whenTaskAdded {
def taskName = it.name
if (taskName.endsWith("JavaWithJavac")) {
def matcher = Pattern.compile("compile(.*)JavaWithJavac").matcher(taskName)
if (matcher.find()) {
println "匹配:" + taskName + "->" + matcher.group(1)
}
}
}
}
系列Gradle
操作文章
https://angcyo.blog.csdn.net/article/category/9283298
项目实用
打印依赖树
打印工程依赖的jar版本, 多用于解决版本冲突.参考
gradlew demo:dependencies
未完待续
持续更新…
群内有各(pian)种(ni)各(jin)样(qun)
的大佬,等你来撩.
联系作者
点此快速加群
请使用QQ扫码加群, 小伙伴们都在等着你哦!
关注我的公众号, 每天都能一起玩耍哦!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)