On Fri, Oct 1, 2010 at 12:55 PM, Justin Edelson <[email protected]> wrote: > On 10/1/10 2:25 PM, Phillip Hellewell wrote: >> So I'll know exactly what to check out for that component just from >> its name and version, which I can get from dependency:resolve. > > You'll also need to create a branch from the tag when you check out, > assuming it's a released version. > > For example, if Project A 1.0.0-SNAPSHOT depends Project B 1.0.0, you'll > need to copy http://svn/projects/B/tags/1.0.0 to > http://svn/projects/B/branches/1.0.0. You will also need to modify the > Project B's pom when doing this branching to change the version from > 1.0.0 to 1.0.1-SNAPSHOT. Finally, you need to change Project A's pom to > reference version 1.0.1-SNAPSHOT of Project B.
Let me clarify a little more and see if it makes sense. The pom.xml files in SVN will all have a version like "1.0-SNAPSHOT". The official build machines will always creates a tag (svn copy) before doing a build, and then replace "SNAPSHOT" with that tag name. So in the Maven repository the pom.xml will say "1.0-tag_whatever". A developer who has checked out project A will be able to obtain the source code for project B by checking out B using the tag name that is part of B's version in its pom.xml. Any changes to B can be made locally and installed to the local repository, and yes the developer will have to go into A's pom and change it to use a snapshot of B. Since B is checked out as a tag, any change cannot be checked in directly. To make a permanent change to B in actual SVN the developer must check out the trunk (or a branch) of B, or more simply just do a svn switch. Then the change can be checked in and once the official build machine creates a new build (which also includes creating a new tag), then if project A is ready its pom can be updated to reference the new version (tag) of B. Phillip --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
