You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-user@ant.apache.org by Michael Shea <mi...@nitido.com> on 2010/05/13 21:52:14 UTC
Figuring out order of dependencies (like graphml).
Hi folks,
I have a bit of a complex issue here, and I'm wondering if anybody has
recommendations about how I can solve it.
I will start out by describing what I want to do. I have several ivy
modules which contain javascript files. My build process produces a .war
file, and needs to concatenate the javascript filse from each module in
a specific order. Currently, that part of the build process is entirely
contained in the build process for the .war - so the .war needs to know
which javascript files to concatenate, in order. I dislike this, because
it means that the final module needs to know things about the modules it
is using that it shouldn't need to know.
I would like to make this process more general. ie, I would like each
javascript module to publish an artifact that contains a list of its own
javascript files (in the order in which they should be concatenated),
and then I would like the build for the .war to simply concatenate all
of these files together in the order provided. I thought of maybe using
Ivy post-retrieve-artifact triggers for this, but the problem is that
they are not called in the order that I need. ie:
war
|-- module-3
| |-- module-1
|
|-- module-2
| |-- module-1
... The order that my triggers fire in is "module 3, module 1, module 2,
module-1", but I need it to be "module 1, [module-2, module-3]" (the
order of module 2 and 3 is not important). Either this or exactly the
reverse, since I could just reverse the ordering easily in code.
ie, the problem is that the triggers seem to fire depth-first, and I
need *something* that works breadth-first; if it's not triggers and is
something else, that's fine too.
Clearly it is possible to obtain this information, since that's
basically the sort of stuff that comes out in the .graphml reports. Does
anybody have any ideas for how I should approach this problem? Parsing
the report XML files is doable, but if there's an easier way to solve
this, I'm all ears =).
Thanks,
Mike Shea.