ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Oulds <>
Subject Re: Using Ivy to automate build
Date Wed, 25 Nov 2009 11:09:53 GMT
Thank you for your reply, let me explain the raison d'etre for my 
question inline

many thanks

Mitch Gitman wrote:
> Jonathan, there's one statement from you that doesn't make sense:
> "...however in this particular case I need to build without access to the
> artefact [sic] repository."
> Maybe I'm misunderstanding what you mean, but you can't really use Ivy to
> build if you're not accessing an Ivy repository.

I admit this was a bit unclear, what I am attempting to do is build the 
entire project source from start to finish in one pass from a clean 
checkout.  I actually will have access to an artefact repository, 
however this repository will be empty, as such any attempt to resolve 
will fail, thus the only way to accomplish my task is to build the 
dependencies in the correct order, however the build order is dependant 
on configuration of the project.

For example imagine the configuration was something like "Win32+Test", 
this would obviously give a different build order to "MacOsX+Release"

Ideally I would like the ivy:buildlist to be able to determine the build 
order with respect to the required configuration, however this does not 
seem possible.

> I can attest that my team has had success using *ivy:buildlist *to do
> multimodule builds. Part of the deal, though, is that you still have to tell
> Ivy what it needs to know. Each module is responsible for doing an *ivy:publish
> *during its turn in the multimodule build--after doing whatever arbitrary
> work it was asked to do in the first place.
> Also, there are times when the proper build order cannot be determined
> simply by looking at the existing Ivy confs. For example, there may be a
> project that does some deployment work. Other projects downstream don't
> depend on its library being in the classpath (maybe it doesn't even publish
> a JAR), but they do depend on its having done its work by then. (In a normal
> situation, I would argue against having such relationships, but play with
> me.) In this case, you may want to add a special Ivy conf--call it
> "buildlist"--whose job is strictly to help establish build order. So you
> get:
> <dependency org="..." name="..." rev="..." conf="buildlist->..." />

Could you elaborate on this a little more, could I use such a technique 
to define different buildlists for say release, debug or testing builds?

> But whether a special "buildlist" conf is needed or not, I can attest
> that *ivy:buildlist
> *does manage to divine the correct build order from each project's ivy.xml.
> On Tue, Nov 24, 2009 at 9:13 AM, Jonathan Oulds <> wrote:
>> Dear all,
>> I am using Ant+Ivy to specify the dependencies within a large software
>> project containing a mixture of C++ and Java code.  I then use ivy:buildlist
>> to ensure that all targets are build in the correct order.
>> However I have now run into a problem.  Namely that the list of build.xml
>> files may be different for different configurations, however ivy:buildlist
>> does not seem to take account of configuration information within ivy files.
>> Now I'm sure the the answer to this will be "simply resolve each project
>> before it is built, then the build order is irrelevant" however in this
>> particular case I need to build without access to the artefact repository.
>> Am I out of luck in hoping that Ivy can help automate my build.  Or has
>> anyone come across the same problem and arrived at an ingenious solution?
>> Thanks in advance
>> Jonathan

View raw message