Domanda

I have 2 gradle tasks that i want to run after assembleRelease task.

task copyRequiredFilesToVersionControl(type:Copy) {
  ...
}

task ('versionControl') << {
  ...
}

If I configure order for these tasks as below tasks get never called...

copyRequiredFilesToVersionControl.dependsOn(assembleRelease)
versionControl.dependsOn(copyRequiredFilesToVersionControl)

If i change order like;

assembleRelease.dependsOn(copyRequiredFilesToVersionControl)
versionControl.dependsOn(copyRequiredFilesToVersionControl)

Tasks are run at the beginning of document. So there is no file to copy and add to version control.

What is the best approach?

È stato utile?

Soluzione

I have found method that called doLast. So i fixed my problem with it.

assembleRelease {
    doLast {
        tasks.versionControl.execute()
    }
}

Altri suggerimenti

The best approach that I've found to date, has been to use the Ordering Tasks feature in Gradle : see http://www.gradle.org/docs/current/userguide/more_about_tasks.html for more documentation, currently section 15.5.

Basically, you have two rules available : MUST run after and SHOULD run after. I like the rule quite a bit, I use this to create zip archives of projects automatically. NOTE : you must still make use of the "dependsOn" to get proper execution if tasks that you need to have run in a particular order.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top