Here's what I do... 1. Set up a normal internal ivy repository. On the main/build server, a "publish" ant task publishes a built project to the internal repo (version number automatically includes SVN revision).
2. On the main server, SVN checkout Ivy RoundUp and publish this tree on the internal web server. This is just an optimization to make access to Ivy RoundUp files faster. 3. Individual projects use svn:externals to incorporate standard build macros, etc. This stuff includes an ivysettings.xml file that configures the above two repositories for ivy. As an Ivy RoundUp maintainer I'm of course biased but this seems like a nice and clean way to do things. There is a repo for internal stuff and there is a repo for public stuff. Done. We don't use maven so there is no maven weirdness, everything is pure ivy. The only "glitch" is when something we need is not in Ivy RoundUp, but then the task of adding it is doubly worthwhile because it serves both our own purposes and other users of the project (i.e. positive open source karma). As a side note, I do the same thing with RPM's. We have an internal RPM repository plus the public openSUSE ones. Internal RPM builds publish to the internal RPM repository. openSUSE's zypper(1) command functions like ivy but in the RPM world. RPM dependencies function like ivy dependencies. RPM spec files are like ivy.xml files. These two parallel universes are very analogous. -Archie On Mon, Aug 9, 2010 at 6:24 AM, Steve Loughran <[email protected]> wrote: > > I want to set up a project which has all the things we depend on in SCM, > plan is to have two repositories > > repo/internal - in house built artifacts, SCM managed release propagation, > etc. > > repo/external - everything that normally comes out of ibiblio, jboss, > reslet m2 repositories, which ivy pulls down, and the odd Sun JAR that isn't > normally online > > Question is, how best to build that external repository, especially, how > best to automate building that repository. > > > 1. Manual M2 layout. From the dependency data, grab the JARs and POM files, > lay them out maven style. > > 2. Copy ivy cache. clean your local cache, do a release, copy ~/.ivy/cache > to repo/external, delete things you don't want there and check in the rest. > > Has anyone else done this? What was their tactic? > -- Archie L. Cobbs
