12

使用 Gradle 构建最终输出文件后,我想做两件事。更新本地 version.properties 文件并将最终输出最终复制到某个特定目录以进行归档。假设我已经实现了 2 个完全按照我刚才描述的方法实现的方法,updateVersionProperties()并且archiveOutputFile().

我知道想知道什么是最好的方法来做到这一点......

备选方案 A:

assembleRelease.doLast {
    updateVersionProperties()
    archiveOutputFile()
}

备选方案 B:

task myBuildTask(dependsOn: assembleRelease) << {
    updateVersionProperties()
    archiveOutputFile()
}

在这里,我会调用myBuildTask而不是assembleRelease,就像在替代方案 A 中一样。

哪一种是推荐的方法,为什么?一个比另一个有什么优势吗?想要一些澄清请... :)

4

1 回答 1

14

只要有可能,就将新活动建模为单独的任务。(在您的情况下,您可能会再添加两个任务。)这有很多优点:

  • 关于当前正在执行或失败的活动的更好反馈
  • 能够声明任务输入和输出(从中获得所有好处)
  • 重用现有任务类型的能力
  • Gradle 并行执行任务的更多可能性
  • 等等。

有时不容易将活动建模为单独的任务。(一个例子是当需要就地对现有任务的输出进行后处理时。在单独的任务中执行此操作将导致原始任务永远不会up-to-date在后续运行中。)只有这样才能将活动附加到现有的的任务doLast

于 2013-07-03T06:40:14.293 回答