• 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'

  • 相关阅读:
    字符串练习
    python基础
    熟悉常用的Linux操作
    大数据概述
    递归下降分析程序
    自动机
    词法语法分析1
    关于我对编译原理的理解
    6小时学会TypeScript入门实战教程(大地)
    kotlin
  • 原文地址:https://www.cnblogs.com/alexkn/p/6558781.html
Copyright © 2020-2023  润新知