ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jochen <>
Subject Ivy multi project setup with mixed binary and source dependencies
Date Tue, 10 Jan 2012 11:44:28 GMT

we hava a non-trivial (but required) project setup that has mixed 
dependencies, either sources checked out from th SCM repository or 
binaries downloaded from a Maven repository. The most important thing 
is that we have to handle archives, e.g. resources or C headers that 
are contained in a tar archive for binary distribution, and must be 
unpacked when building.

What we need to achieve is the following:

1. Each source dependency should be checked out into its own directory, 
resulting e.g. in the following directory structure: 
Workspace/Project1, Workspace/Project2, …

2. The binary dependencies can be stored anywhere, e.g. in the ivy cache

3. If a project is missing, it should be checkout out from the SCM 
repository, if the user has access to it. This step is optional, but we 
would like to automate it

4. If Project1 has a dependency on an archive from Project2, a symlink 
should be created, e.g. "lib/Project2/archive" in Project1. The target 
of this symlink must be the directory in Project2 that contains the 
unpacked build results for the archive. For example, Project2 hast a 
target directory "Project2/build/Headers", so link 
"Project1/lib/Project2/Headers" should point to 
"Project2/build/Headers". I tried this using a file system resolve, but 
could not get it to work without publishing "Project2" to the Ivy 
cache. However, we absolutely need the direct link into Project2's 

5. If Project2 cannot be obtained from the SCM repository, it should be 
downloaded from a Maven repository and unpacked someplace. The link 
"Project1/lib/Project2/Headers" should point to the location where the 
artifact was unpacked.

Ivy brings along a lot of the things we need, especially the 
configuration management.

It would be great if we could use it, so the question is: Is the setup 
described above possible using Ivy, and if yes, how?

Thanks very much for your help,

View raw message