106

Gradle学习(十五)——增量构建

 6 years ago
source link: http://blog.csdn.net/lastsweetop/article/details/79025517?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

转载请注明出处:http://blog.csdn.net/lastsweetop/article/details/79025517

任何构建工具最重要的一个功能就是防止做重复工作。例如对于编译进程来说,如果已经执行了一次编译,那么就不需要再进行第二次,除非发生了一些会影响输出的操作,比如源代码改了或者输出被删掉了,编译会消耗很多时间,如果没必要去的情况下跳过这步就会节省很多时间。

Gradle是通过增量构建的特性来支持这个功能的,我们来详细了解一下

任务的输入输出

在通常情况下,任务接收一些输入然后产生一些输出。如果用编译的例子来讲,比如java的编译,它会接收一些源文件作为输入,然后产出class文件作为输出,还有一些输入,比如可以指定是否包含日志文件。

就像上图看到的一样,输入最重要的特征就是可以影响一个或者多个输出。依赖于源代码和源码所跑在的java运行时的版本都会影响字节码的生成,这些都算输入。但是比如memoryMaximumSize指定的编译时最大内存的大小是不会影响最终字节码生成的,如果按Gradle的术语,memoryMaximumSize应该叫做内部任务属性。

作为增量构建的一部分,Gradle会去检查输入和输出是否改变,如果没有改变它就认为任务是up-to-date<


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK