I work at a place where we have a "product" and then we have multiple "client" customization projects that sit on top (one 'customization' per client).
The theory is, the "product" is developed by one team, and the customizations are done by other teams, and thus in theory the product team should have one ivy file, and the client teams would each have their own, that simply treats the product as a dependency. In practice, however, client teams are always working on product at the same time (in order to fix bugs, add customization points, enhance product features etc). So what I've set up a standard ivy/ant for the product, but for clients I have an extended build that builds the core product and the client customizations. In order to do this, I use the core ivy file, AND a second client ivy file that has all the dependencies of the client but does not depend on the core (since I'm building it at the same time). However, having two ivy files in a single build is problematic because: -most of my client dependencies exist in the core product, and I have to be careful to ensure I keep version numbers in sync. -when I use ivyde, the client project and core project both load their dependencies, even if they're the same jar, this is particularly problematic if the versions have resolved differently. Anyone have a better idea on how to do this? Also, I'm only using ivy for build time dependency management, I'm not using it for deployment or pom/ivy file generation (at least not yet), so that does not need to factor into any suggestions.
