在运行时配置Gradle任务

时间:2020-05-09 13:35:25

标签: gradle

是否可以在其他任务运行后在运行时配置gradle任务的输入?

例如,我一步计算一个拉链的SHA,然后上载包含上一步中SHA的路径的拉链。但是当我通过SHA获取包含在文件中的def sha = shaFile.text的值时,我得到了一个错误:(No such file or directory)

我一直以为任务是在运行时运行的闭包,但是我猜只是doFirstdoLast,但是在此之前必须先配置输入。

1 个答案:

答案 0 :(得分:1)

是否可以在其他任务运行后在运行时配置gradle任务的输入?

这样想:

要使任务B运行,必须先运行任务A,也就是说,任务B对任务A具有依赖性。

有关任务依赖项的更多详细信息,请参见Adding dependencies to a task

好,现在我们需要任务A的输出(SHA值)作为任务B的输入。对于任务A,Gradle最好确保在任务B执行之前先执行任务A。

这是Kotlin DSL中的一个肮脏的例子(应该很容易翻译成Groovy):

order

理想情况下,您应该创建一个custom task type,同时指定input fileoutput file,以便Gradle可以缓存任务的输入/输出。有关更多详细信息,请参见Incremental tasks

相关问题