ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gilles Scokart" <gscok...@gmail.com>
Subject Re: Dependencies and Global Excludes
Date Thu, 24 Apr 2008 21:33:23 GMT
On 24/04/2008, Xavier Hanin <xavier.hanin@gmail.com> wrote:
> On Thu, Apr 24, 2008 at 6:26 PM, Michael Laccetti <michael@s2g.ca> wrote:
>
>  >
>  > Two questions:
>  >
>  > 1) Is there any way to see the transitive dependencies?  My current build
>  > is
>  > failing because Ivy is trying to pull down com.sun#ldapbp;1.0, which isn't
>  > in the Maven repository. The only problem is that I cannot find where this
>  > is coming from, so I cannot block it and feed in the
>  > com.sun.jndi.ldap#ldapbp;1.0 dependency instead.  Which leads to part
>  > two...
>
>
> I think you can see it in verbose or debug mode, but it's not obvious.
>  logging the depender(s) when a dependency is not found would be a nice
>  improvement. You can open an issue if you like.
>
>
>
>  >
>  >
>  > 2) How can I block dependencies for the entire project?  Similar to the
>  > first question, something is trying to pull in
>  > org.spring#spring-ldap#1.1.2,
>  > which has some POM hashing issues.  So, I'm trying to pull in
>  > org.springframework.ldap#spring-ldap;1.2.1 instead.  I just need to know
>  > how
>  > to block the one and use the other.
>
>
> I'll answer with a trunk feature (which has changed since beta 2). The
>  easiest is to override the version required, instead of excluding / adding.
>  This can be achieved like this:
>
>  <ivy-module version="2.0">
>         [...]
>         <dependencies>
>                 [put your dependencies here]
>
>                 <override org="org.spring" module="spring-ldap" rev="1.2.1" />
>         </dependencies>
>  </ivy-module>
>
>  But I just notice that you ask to override the organization too, which is
>  not possible currently.

Hey, you gave me an idea...
Shouldn't we have :
<ivy-module version="2.0">
         [...]
        <dependencies>
                 [put your dependencies here]

              <substitute org="com.sun.jndi.ldap" module="ldapbp" rev="1.0" />
                   <replacement org="org.spring" module="spring-ldap"
rev="1.2.1" />
              </substitution>
         </dependencies>
</ivy-module>

I don't think that was the inital question, nor that this specific
example make sense. But the use case sounds realistics.  You want to
replace a transitive dependency by an other module which can be an
other packaging of the same module, a derivative version of it, or
just an other implementation of a given interface.

We may have to think a little bit further what it means in case of
conflict or in case of 'diamond' dependencies, but that seems
interresting.


-- 
Gilles Scokart

Mime
View raw message