On Jan 26, 2009, at 10:09 AM, Tom Eyckmans wrote:


What does this define exactly? Is 'dists' an archive? A type of archive? a configuration?

Currently we have for example compile for pulling dependencies (artifacts) in, it would nice to have dists, sources, javadoc for pushing (artifacts) out. So it would also be nice to be able to add outgoing configurations:

artifacts {
addConfiguration('examples') // because the addConfiguration is in the artifacts block we can mark it as an outgoing configuration // addConfiguration('dists', 'runtime') implicit - the dists configuration depends on runtime allowing us to setup the Class-Path in MANIFEST.MFautomatically

     // multiple artifacts in outgoing configuration
     examples   jar() { ... },
                      zip() { ... }

     sources jar() { ... }
     javadoc jar() { ... }
}

upload {
     // like we do for pulling dependencies in
     addMavenRepo('maven', ....)
     addFtp('webFtp', ...)

// but here we use the configurations to state what artifacts we want to publish/upload
     webFtp examples,
                 sources,
                 javadoc,
                 dists // publish everything to web

     maven   sources,
                 javadoc,
                 dists
}

In Ivy one configuration can be used both for assigning dependencies to it and assigning artifacts to publish. I think this makes a lot of sense, in particular if the project constitutes a library to be used by other projects. The other project refers to a configuration of the project, which describes a set of artifacts and a set of dependencies. There are also many use cases where this is not important. Where you will create configurations just for publishing or just for resolving dependencies. But our design wouldn't make this more complicated. But it means one thing for your proposal above. That is the configurations have to be defined separately from the dependencies and upload(publish) context.

I'm not sure yet what is a good way to integrate artifacts and archives.

The notation (which is the same as I have used in the first email)

artifacts {
     examples jar() {...}
}

look pretty neat. But often the closure of the jar will be a biggy. I'm not sure how nice this reads in real life.

- 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