本篇文章主要介绍了" Android Gradle 自定义Task 详解",主要涉及到方面的内容,对于Android开发感兴趣的同学可以参考一下:
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/76408024
本文出自【赵彦军的博客】一:...
在出现语法矛盾的情况下,依赖关系形成闭环,会自动打破闭环。不会报错
九:系统默认 task
gradle 默认提供了很多 task 给我们使用,比如 copy、delete
1、copy
build.gradle
task 任务的名字 (type: Copy) {
//action
}
//数据源目录,多个目录
public AbstractCopyTask from(Object... sourcePaths)
//目标目录,单一
public AbstractCopyTask into(Object destDir)
//过滤文件 包含
public AbstractCopyTask include(String... includes)
//过滤文件 排除
public AbstractCopyTask exclude(String... excludes)
//重新命名,老名字 新名字
public AbstractCopyTask rename(String sourceRegEx, String replaceWith)
//删除文件 Project 接口
boolean delete(Object... paths);
小例子:
task copyImage(type: Copy) {
from 'C:\\Users\\yiba_zyj\\Desktop\\gradle\\copy'
into 'C:\\Users\\yiba_zyj\\Desktop'
}
task copyImage(type: Copy) {
from 'C:\\Users\\yiba_zyj\\Desktop\\gradle\\copy' ,
'C:\\Users\\yiba_zyj\\Desktop\\gradle\\copy'
into 'C:\\Users\\yiba_zyj\\Desktop'
}
只会复制后缀为 .jpg 的文件
task copyImage(type: Copy) {
from 'C:\\Users\\yiba_zyj\\Desktop\\gradle\\copy'
into 'C:\\Users\\yiba_zyj\\Desktop'
include "*.jpg"
}
task copyImage(type: Copy) {
from 'C:\\Users\\yiba_zyj\\Desktop\\gradle\\copy'
into 'C:\\Users\\yiba_zyj\\Desktop'
include "*.jpg"
exclude "image1.jpg"
rename("image2.jpg","123.jpg")
}
文件覆盖规则
相同文件覆盖
Copy 类的继承图
Copy (类)
- AbstractCopyTask (抽象类) (from、 into、 include、rename)
-ConventionTask(抽象类)
- DefaultTask (类)
- AbstractTask (抽象类)
- TaskInternal (接口)
- Task(接口)
-Comparable, ExtensionAware(接口)
-Project(接口) (delete 方法)
2、Delete