On Jan 7, 2008, at 2:01 PM, Xavier Hanin wrote:

On Jan 5, 2008 7:59 PM, Hans Dockter <[EMAIL PROTECTED]> wrote:

I have the following probably pretty common use case. It is an issue
related to maven pom's.

Let's say I declare a dependency on the groovy-all module. The groovy-
all pom declares 9 optional dependencies. I need one of of the
optional dependencies for my usage scenario of groovy-all. If you are
a Maven2 users there is no good way of dealing with this situation.
What you have to do, is to declare the optional dependency you want
as a first level dependency in your pom. How can I deal with this in
Ivy? The module descriptor created out of the pom, has two
configurations I'm interested in. This is default (Maven's compile
and runtime scope) and optional (all dependencies declared optional
in the pom). Now I can do the following:

<dependency org="org.codehaus.groovy" name="groovy-all" rev="1.5.1"
conf="compile->default,optional"/>

This add all 9 optional dependencies to the compile configuration.
But I want only one. As I understand Ivy, I can only apply exclude
and include filtering to the master configuration. In this case that
would mean I have to add 8 exclude statements to exclude the unwanted
optional dependencies. Alternatively I could declare include
statements for all the required dependencies. Both is pretty
impractical. I would like to declare filters on the dependency
configuration, to say something like: include MODULE_X of OPTIONAL

How is this different from the use of the include element when declaring the
dependency?

Xavier

I think there has been a misunderstanding on my side regarding the include element. I have missed the fact that In contrast to the exclude element, include does not apply to the dependencies of a dependency, but only to published artifacts of the dependency, right? What I have in mind is an include for (first level) dependencies of a dependency. I'm not sure if this is a good idea. I'm just looking for a good solution for the use case described above.

Another question: The include and artifact element basically does the same, right?

- Hans





My work around right now is to do it the same way as I did with
Maven. Declaring the optional dependency as a first level dependency.

Is there a better solution to this problem or are there plans to
provide one? I'm happy to file a Jira issue :)

- Hans







--
Xavier Hanin - Independent Java Consultant
http://xhab.blogspot.com/
http://ant.apache.org/ivy/
http://www.xoocode.org/

--
Hans Dockter
Fon: ++49-30-44024684
Fax: ++49-30-44024685
http://www.dockter.biz




Reply via email to