Android Studio中如何让Gradle自动执行Task

我在app中的build.gradle中定义了如下一个task:

task importHTML(type: Copy){
    println('start import htmls')
    from('../web')
    into('./app/src/main/assets')
    include('**/*')
}

我试过在右侧gradle标签下可以定义excute before Syncexcute after Sync等等。。
但是每次运行app的时候,都不会执行这个task,只有在SyncMake的时候才有用。

如何让app每次运行的时候都去执行这个task操作呢?

阅读 18.1k
6 个回答

在运行配置里有运行前的任务,默认是gradle的组装,你可以加你的任务到这个任务之前。

执行app默认执行的是assembleDebug这个task,所以只需要

tasks.findByName('assembleDebug').doLast {
    println '++++++++ app last +++++++++'
}

在build中加入以上代码就可以了。

task importHTML(type: Copy, dependOn:'assmbleDebug'),dependsOn里面根据你自己的需要写不同都的编译阶段

去了解一下gradle的运行机制,推荐看看《gradle for android》

radle.taskGraph.whenReady { TaskExecutionGraph taskGraph ->
// 使用Groovy语法调用getAllTasks方法获取所有的task,通过findAll

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题