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


Reply via email to