On Oct 1, 2008, at 10:11 PM, snesbitt wrote:


We definitely have and will have much shorter release cycles.

Shorter release cycles will help, but really can't be guaranteed especially as complexity grows, and the number of plugins - especially thirdparty -
supplied grow in number, complexity and usage.

If Eclipse is capable to manage to have a milestone release every 6 weeks we should also be able to do so. Otherwise something is going into a wrong direction.

Third-party plugins have of course their own release cycle.


If definitely would make sense to be able to assign arbitrary
attributes for the forked JVM and the call to javac. In general I'm
not sure. The feature you are proposing would simply create a
namespace for each task, right?

I hadn't really given much thought to implementation, but a namespace would
be one way.

The problem that I see now is to do what I suggested requires some iffy assumptions and/or detailed knowledge of the plugin internals. I made the assumption that compile was essentially a call to the ant javac task. In that context my request made sense. Under a different implementation - like
direct calls to
javac - my request makes no sense and would be dangerous.

This is transparent. In our case here. 'memoryMaximumSize' is a property of the Compile plugin. To be precise of the ForkOptions class. This property has the same name as the Ant task property but is a property on its own. So if we move from Ant javac to plain javac this is an internal implementation change and would not change our API. What this internal change would allow though, is to provide an 'additionalArguments' property. So if Java X would introduce a new option for javac you would not have to wait for a new Gradle release to use it. The Ant javac task does not provide such a generic property.


One thing I hated about Maven was the complexity of the plugins and the
rigidity in behavior (not to mention bugs).  It wasn't unusual to lose
confidence in a plugin and start seriously considering writing one's own -
which negated a lot of the value of Maven.

It would be nice if Gradle avoided that "feature" <grin>

This is a good point which points to a fundamental problem of Maven and the rigidity of XML based build scripts/declarations. You might view a plugin/task as a little framework to solve a certain domain. Frameworks are rigid by definition. If they are too rigid to solve your problem the alternative is to use toolsets instead. But for working with toolsets you need a real language to use them, this is not possible with XML. The philosophy of Gradle is to provide small frameworks for the major usecases. If this does not work out, you can fall back to toolsets used with Groovy.

- 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