AndroidTest工程的自定义gradle task

由于需要将assets目录的资源拷贝到设备sdcard中,然而我的工程是一个android test工程,而android test工程在编译阶段,不会把assets目录的资源打包成对应apk,而为了在编译过程中就能将所需要的资源拷贝进去,且方便业务方使用,思考过后,只有自定义task任务才能解决这一问题。

task copyResource(type: Exec){
    def srcDir = "${rootProject.rootDir}/app/src/main/assets"
    def destDir = "/sdcard/"
    println("cpoy $srcDir to $destDir")

    commandLine "adb", "push", "$srcDir", "$destDir"
}


project.tasks.getByName("assembleAndroidTest").dependsOn "copyResource"

 

groovy脚本虽然不复杂,但是中间遇到一个坑,就是我在root节点的build.gradle中增加这段代码,却提示root.project没有assembleAndroidTest任务,于是增加一段代码,将app下面的build.gradle跟root下的build.gradle同时增加信息

project.afterEvaluate {
    for (t in project.tasks) {
        println "task=="+t.getName()
    }
}

 

终于明白,自定义task需要加在app下的build.gradle中。于是问题顺利解决。虽然还是不明白,在root路径下的setting.gradle中已经增加了include ':app'

posted @ 2017-03-16 12:03  李雷雷alexkn  阅读(1045)  评论(0编辑  收藏  举报