On 29/05/10 3:57 AM, Steve Appling wrote:
We would really like to resolve the issues related to circular dependencies
(GRADLE-914 in particular) sometime soon. I know this is marked for 0.9, but
so are 91 other issues. Is this something that anyone is planning on
addressing in the short term (within the next couple of weeks)? If not, does
anyone understand the underlying problem enough to point me in the right
direction?
I know of 2 problems. There may be more, but this is as far as I got:
1. The compile configuration is now transitive by default (for good or
bad). So, using a runtime dependency to break the cycle isn't going to
work. This is easily fixed by configuring the compile configuration to
be non-transitive. But, this does highlight some awkwardness in the
dependency dsl, where the only options are to include the jar on its own
or the entire transitive closure of everything the jar might need (even
though it doesn't for the purposes of compiling a dependent project). I
think we need something more flexible here, so we can provide a better
default behaviour.
2. The DefaultProjectDependency.getBuildDependencies() implementation
doesn't consider whether the configuration it belongs to is transitive
or not. And so, it always drags in the tasks to build the runtime
configuration of the target project, even though only the jar may be
required. This is the actual bug.
I was going to try to fix this for 0.9. But there's plenty of other
stuff to fix, so if you want to have a look at this, feel free to do so.
--
Adam Murdoch
Gradle Developer
http://www.gradle.org
CTO, Gradle Inc. - Gradle Training, Support, Consulting
http://www.gradle.biz
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email