什么是Gradle依赖图的真实示例?

时间:2010-03-10 03:17:03

标签: gradle

the documentation所述,Gradle使用有向无环图(DAG)来构建依赖图。根据我的理解,具有单独的评估和执行周期是构建工具的主要特征。例如Gradle doc表示这可以实现一些本来不可能的功能。

我对能够说明此功能强大功能的真实示例感兴趣。依赖图重要的一些用例是什么?我对这个领域的个人故事特别感兴趣,无论是使用Gradle还是使用类似的工具。

我从一开始就制作这个“社区维基”,因为很难评估“正确”的答案。

3 个答案:

答案 0 :(得分:6)

答案 1 :(得分:3)

example from the same documentation说明了这种方法的强大功能:

  

正如我们稍后详细描述的那样   (参见第30章,构建生命周期)   Gradle有一个配置阶段和   执行阶段。之后   配置阶段Gradle知道所有   应该执行的任务。摇篮   为您提供一个钩子来利用它   信息。一个用例就是这样   检查发布任务是否正确   要执行的部分任务。   根据这个你可以分配   某些变量的值不同。

换句话说,您可以尽早挂钩构建过程,以便根据需要更改其过程。如果已经执行了一些实际的构建工作,那么改变可能为时已晚。

答案 2 :(得分:1)

我现在正在评估不同的构建系统,并且使用gradle我设法添加丑陋的代码,枚举所有类型'jar'的任务并更改它们,以便每个jar清单包含'Build-Number'属性(稍后使用)撰写最终文件名):

gradle.taskGraph.whenReady {
    taskGraph ->
    taskGraph.getAllTasks().findAll {
        it instanceof org.gradle.api.tasks.bundling.Jar
    }.each {
        it.getManifest().getAttributes().put('Build-Number', project.buildVersion.buildNumber)
    }
}