05-依赖网络
14.2.1 依赖网络
依赖网络本质上是一个有向的无环图,它包含了节点之间的依赖关系,根据节点的类型大致可以分为以任务为核心的依赖网络(如ANT)和以输出为核心的依赖网络(如Makefile)。
这里有一些微妙的区别:前者更关心任务会不会被重复执行,也就是构建合理的任务执行序列;而后者更关心当某个中间输出结果变动时,是否需要重新生成部分输出而并非全部输出。
构建依赖网络时需要注意以下几点。
- 如何从任意节点快速出发遍历网络并找出依赖关系。
- 检测环的问题。
- 出现事件(如中间输出变化或者依赖不满足)时,如何快速生成解决方案。