Hi,

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 source.

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,
Jochen


Reply via email to