• Android开发:《Gradle Recipes for Android》阅读笔记(翻译)4.2——增加自定义task


    问题:

    你想要在整体的构建过程中加入自定义的task。

    解决方案:

    使用dependOn属性将你的任务插入 directed acyclic graph

    讨论:

    在初始化阶段,Gradle将任务根据依赖集合成一个序列。结果就是一个DAG。举例子,Gradle记录为java插件生成一个DAG,如下图:

    "directed"意味着每个依赖箭头只有一个方向。"Acyclic"意味着在图表中没有循环。

    在主进程中增加自定义task意味着,在图表的合适位置插入你的任务。

    4.1节的copyApks任务被定义用来将生成的apk复制到一个单独的目录下。为了简便这个任务被复用:

    如果apk没有生成,这个任务没什么实际用处。assemble任务生成apk。如果将它作为copyApks任务的依赖:

    对assembleDebug的依赖意味着在copy任务执行之前,debug APK会被生成。你可以使用assemble替代,这样你就是使用release的APK。

    如果你想要在build的时候都运行copyApks任务,你可以将它作为build task的依赖。如:

    现在运行build task也会将apks复制到单独的文件夹。你已经使用正确的信息将copyApks任务插入到DAG。

    移除生成的apks目录下的所有apk也可以同样的方式。根目录下有个clean任务我们可以编辑:

    delete任务接受一个files或者folders的列表,以做到更多的功能,很容易修改这个任务,如:

    任何自定义的任务都可以通过这样的机制添加到build进程中。

  • 相关阅读:
    学习Python第五天
    学习Python第三天
    Mongodb
    JMS links
    笔记整理
    a* products
    String
    business knowledge
    [Java coding] leetcode notes
    [Java Basics3] XML, Unit testing
  • 原文地址:https://www.cnblogs.com/tootwo2/p/6417813.html
Copyright © 2020-2023  润新知