I have just committed a fix for Gradle-220 (Provide control to the user if and how project dependencies should be rebuild).

With -a or --no-rebuild you can now disable that project dependencies are build at all. Of course this works only if the project dependencies have been build before and are accessible in the ./gradle/ internal-repository cache.

With gradle -Ajavadoc -Atest you can specify additional tasks that should be run when building project dependencies. For 0.7 we plan to make our command line smarter and more expressive. Jon Cox and Steve Appling have made very interesting proposals. So this syntax is likely to change with 0.7. It is pretty basic anyhow and does not allow for fine-grained control. But it solves the most urgent pain.

I have run into one rather fundamental issue. Task dependencies are not ordered. They are not a LinkedHashSet or a List.

With Gradle-220 I have the following use case: Let's say you want that project-dependencies are build with a clean:

Project A (has a compile dependency on Project B)
gradle -Aclean compile

The problem is that clean is not necessarily executed as the first task when building B. Which of course leads to a failing build. For other tasks (e.g. javadoc) this is not an issue, as it has no side- effects.

I'm wondering what to do here. This also relates to:

http://jira.codehaus.org/browse/GRADLE-427 dependsOn doesn't respect dependency order

One approach would be to have an ordered set for dependsOn tasks and they are executed in this order (of course only as long as they are not part of other dependsOn relations).

Thoughts?

- Hans

--
Hans Dockter
Gradle Project lead
http://www.gradle.org





---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email


Reply via email to