Gradle option to resume from task

Simply replace ‘it.path == resumeTask’ with ‘it.path.startsWith(resumeTask)’. Then you can also resume from a project.

To implement correctly, we need to do something like…

  1. re-order the task dependency (view of the graph, not actual graph) into project dependency

  2. disable upstream dependency task

For example, if we have three project, p1, p2, p3

If if we say ‘gradlew test’ then it should look like

:p1:compile
:p2:compile
:p3:compile
:p1:testCompile
:p2:testCompile
:p3:testCompile
:p1:test
:p2:test
:p3:test

After reordering it will look like (not actual graph)

:p1:compile
:p1:testCompile
:p1:test
:p2:compile
:p2:testCompile
:p2:test
:p3:compile
:p3:testCompile
:p3:test

After disabling, it will look like (‘gradle test -Presume=:p2’)

:p1:compile (disabled)
:p2:compile
:p3:compile
:p1:testCompile (disabled)
:p2:testCompile
 :p3:testCompile
:p1:test (disabled)
:p2:test
:p3:test

Doing this one is very hard since we don’t know how to re-order based on the project dependency.