用Gradle构建我的最终输出文件后,我想做两件事。更新本地version.properties文件并将最终输出final复制到某个特定目录以进行存档。假设我已经实现了两个完全按照我刚才所描述的方法updateVersionProperties()
和archiveOutputFile()
。
我知道想知道最好的方法是什么......
备选方案A:
assembleRelease.doLast {
updateVersionProperties()
archiveOutputFile()
}
备选方案B:
task myBuildTask(dependsOn: assembleRelease) << {
updateVersionProperties()
archiveOutputFile()
}
在这里,我将调用 myBuildTask 而不是 assembleRelease ,如替代A中那样。
推荐哪种方法可以做到这一点,为什么?一个优于另一个有什么优势吗?想要澄清一下......:)
答案 0 :(得分:13)
只要您可以,将新活动建模为单独的任务。 (在您的情况下,您可以添加两个更多任务。)这有许多优点:
有时,将活动建模为单独的任务并不容易。 (一个例子是当必须对现有任务的输出进行后处理时。在单独的任务中执行此操作将导致原始任务在后续运行中永远不会up-to-date
。)只有这样才能进行活动附加到doLast
的现有任务。