On Jan 27, 2009, at 9:25 AM, Hans Dockter wrote:
I might be missing something, but I think the resolve behavior in
2-0-final has a bug.
I have the following ivy.xml and ant script:
<ivy-module version="2.0" xmlns:m="http://ant.apache.org/ivy/maven">
<info organisation="apache" module="hello-ivy"/>
<configurations>
<conf name="compile" transitive="false"/>
</configurations>
<dependencies>
<dependency org="org.codehaus.groovy" name="groovy-all"
rev="1.5.7" conf="compile"/>
</dependencies>
</ivy-module>
<project xmlns:ivy="antlib:org.apache.ivy.ant" name="hello-ivy"
default="resolve">
<target name="resolve" description="--> retrieve dependencies
with ivy">
<ivy:resolve conf="compile" transitive="true"/>
</target>
</project>
Although the transitive argument of the resolve task is true, the
state of the transitive property of the configuration wins. Groovy
is not resolved transitively. This is different to the behavior of
ivy-2.0-rc1. I think the resolve argument should always win.
If I do it vice versa the behavior is different:
<configurations>
<conf name="compile" transitive="true"/>
</configurations>
<ivy:resolve conf="compile" transitive="false"/>
Now the transitive argument of the resolve task wins. Groovy is not
resolved transitively.
Should I file a Jira?
I guess the problem, in particular if you use Ivy via its API, is that
the ResolveOptions transitive property is a primitive boolean. So you
can't indicate whether you really want to override the setting of the
configuration, or not.
- Hans
--
Hans Dockter
Gradle Project lead
http://www.gradle.org