On Jul 30, 2008, at 12:08 PM, Adam Murdoch wrote:



Hans Dockter wrote:
Hi Adam,

On Jul 30, 2008, at 5:17 AM, Adam Murdoch wrote:

the other is the relationship between a configuration and a task which *produces* it.

I don't see a use case relationship. Any examples?

One example is a project which uses the artifacts of another project in a multi-project build. Currently we use DependencyManager.artifactProductionTaskName to model this, which ProjectDependency uses to add a task dependency from the consuming project to the producing task of the project. This is fine when all public configurations of a project are produced by a single task and are cheap to build. A problem I ran into porting a multi- project ant build to gradle is that some configurations were very expensive to build and were not needed by most of the other projects. However, in order to use any of them in another project, I was forced to build all of them whether required or not.

I'm not sure if I understand the example above correctly. As I understand it, 'configuration project dependencies' as described at the end of section 14.6 in the UG might help (e.g. new ProjectDependency(project(':api'), 'spi')).


I also think some consistency between modelling the consumers of a configuration and the producers of a configuration would help understandability.


Configurations in Ivy have two aspects. One is internal for a project, like compile, testCompile, etc which are needed for building the project. The other aspect is an external one. You use configurations to bundle artifacts produced by a project (like 'spi' in the example above). When you talk about a producer of configurations, is this equivalent to a producer of artifacts?

- 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