是否可以在其他任务运行后在运行时配置gradle任务的输入?
例如,我一步计算一个拉链的SHA
,然后上载包含上一步中SHA的路径的拉链。但是当我通过SHA
获取包含在文件中的def sha = shaFile.text
的值时,我得到了一个错误:(No such file or directory)
。
我一直以为任务是在运行时运行的闭包,但是我猜只是doFirst
和doLast
,但是在此之前必须先配置输入。
答案 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 file和output file,以便Gradle可以缓存任务的输入/输出。有关更多详细信息,请参见Incremental tasks 。