"dependency-order-by-declaration-sequence is in my eyes one of the features
that makes so many ANT builds difficult to maintain. You need to know the whole
build to safely make a tiny change in the dependency chain and you
have to make those
changes more often. You even have to know the whole build to _use_ it
correctly!"

This is what I was getting at in saying that dependency ordering
becomes a mess of fragile bookkeeping.  Conflicting dependency
resolutions orders—argh!

~~ Robert.

On 24 November 2010 17:20, Dierk König <dierk.koe...@canoo.com> wrote:
>> The execution order is defined when the output-input characteristic
>> requires it.
>
>
> I'm probably not familiar enough with gradle to know exactly what you mean
> by 'output-input characteristic'
> could you elaborate further
>
> Gradle tasks can define what they take as input and what they produce as
> output.
> And many tasks do.
> If task x produces an output artifact that is consumed as input by task y
> then a
> dependency on both x and y is guaranteed to be in executed sequence: first
> x, second y
> (unless the output is up to date and x can be skipped).
> x -> artifact -> y
> a.dependsOn = [y, x]   // declare the 'what', not the 'how'
> This behavior is one of the distinctively mindful design choices of Gradle.
> Imagine the sequence of dependsOn declarations would define the order.
> You can get a conflict with the output-input chain sequence. Now - who wins?
> That in my opinion is the best example where imposing an
> order-by-declaration-sequence
> limits the build system.
> It is not the main reason, though. The reason - on an architectural level -
> is that
> dependencies _have_ no order by nature.
> Also, with an imposed order, you would care too much about the "how" where
> you should
> rather care about than the "what".
> cheers
> Dierk
> P.S. dependency-order-by-declaration-sequence is in my eyes one of the
> features
> that makes so many ANT builds difficult to maintain. You need to know the
> whole
> build to safely make a tiny change in the dependency chain and you have to
> make those
> changes more often. You even have to know the whole build to _use_ it
>  correctly!
> P.P.S. In case you haven't guessed, yet: I love Gradle!
> Kudos to Hans and Adam!
>

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

    http://xircles.codehaus.org/manage_email


Reply via email to