On Feb 5, 2009, at 9:28 PM, Adam Murdoch wrote:
Hans Dockter wrote:
I have started to create a Wiki page for reviewing our DSL in
general. So far I have added page with some ideas how our new
dependency DSL could look like:
http://docs.codehaus.org/display/GRADLE/Dependencies
Generally, this look really good. I like the separation of
repositories, configurations, dependencies and publications into
separate concepts.
Some questions/comments:
It looks like a configuration is implicitly created when it is first
referenced. I think this would be a good thing. Perhaps it should
only happen while the configurations { } closure is executing.
Right.
It also looks like you can configure a domain object using either a
map or a closure or both. I think this would be good. We should also
apply this approach to pretty much every domain object create/add/
configure method - tasks, repositories, projects, and so on.
In the case of the examples for the dependencies, the map would not
automatically map to properties of the domain object. Which makes
sense in this case, as in some cases here we have to do some processing.
What is also interesting for more complex objects is the
GroovyBuilder. I have used it to configure the Maven deployer
(DefaultGroovyMavenDeployer).
I like the new format for dependencies. Do you think we would keep
the 'group:module:revision' format as well? We probably should
deprecate it and keep it for a few releases before removing it.
I'm not sure if we should throw the old notation out directly and
provide a converter. Our users have to touch the build anyway, as
configurations and repositories are now defined in different places
(we could of course also provide backward compatibility here).
<snip>
- Hans
--
Hans Dockter
Gradle Project lead
http://www.gradle.org
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email