On Jan 23, 2008 11:51 PM, limbicsystem <[EMAIL PROTECTED]> wrote:

>
> Hi,
>
> I'm making use of the "extra" attributes in <dependency> in order to lay
> out
> staging directories for my artifacts.  For example, I have a project that
> generates an ear file.  It needs to place its dependencies in particular
> subdirs in the ear; some dependencies go in "APP-INF/lib", others go in
> "services".  I accomplish this by setting a target.dir attribute in my ear
> project's dependencies, like so:
>
>   <dependency rev="${myapp.version}"
>               name="some-lib"
>               org="my-company"
>               conf="compile->default;runtime->default"
>               target.dir="APP-INF/lib"/>
>
>   <dependency rev="${myapp.version}"
>               name="another-lib"
>               org="my-company"
>               conf="compile->default;runtime->default"
>               target.dir="services"/>
>
> Then I use ivy:retrieve to place my deps in the proper layout in my
> staging
> area:
>
>        <ivy:retrieve validate="false" organisation="${org}"
> module="${ant.project.name}"
>                      useOrigin="true"
>
> pattern="${staging.dir}/[conf]/([target.dir]/)[artifact].[ext]"
> sync="false"/>
>
>
> This works fine- I get a dir that looks like:
>
>                      staging.dir/runtime/APP-INF/lib/some-lib.jar
>                      staging.dir/runtime/services/another-lib.jar
>
> However, the "target.dir" attribute only seems to take effect when my ivy
> cache is empty- the initial retrieve works as expected, but subsequent
> retrieves seem to ignore target.dir, as if it were undefined for each dep.
> All my deps end up in staging.dir/runtime.  If I do a cleancache, retrieve
> works properly again.
>
> I suspect that what is happening is when my dependencies' metadata gets
> placed into the Ivy cache, it does not have any target.dir attributes
> (this
> is logical, since these are defined in the ear project, not the
> dependencies' ivy.xmls).  But when these artifacts are then found in the
> cache, "target.dir" is undefined, and this somehow causes its value to be
> disregarded in my ear's ivy.xml.
>
> I'm using Ivy 2.0.0-beta2-local-20080103173107.  Thanks in advance for
> your
> time.

This is strange, and really sounds like a bug. Have you checked your cache
to see how the Ivy files looks like in your cache?

BTW, you can also try a more recent build, we have implemented IVY-553
recently, and thus changed somehow how extra attributes are handled.

Xavier

>
>
>
>
>
> --
> View this message in context:
> http://www.nabble.com/%22extra%22-attributes-lost-when-dependencies-are-placed-into-cache-tp15054739p15054739.html
> Sent from the ivy-user mailing list archive at Nabble.com.
>
>


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

Reply via email to