I use option 1. /Anders
On Thu, May 6, 2010 at 10:33, Osipov, Michael <michael.osi...@siemens.com>wrote: > Hi folks, > > I have recently struggled with a very annoying issue of mirror config > and need so idea on a best practice approach. > > My setup is fairly simple: I have setup a Nexus instance in our dept and > grouped proxied and hosted (both snap and rel) to a repo "public". > > I have created a super pom for our dept, say my.group.id:my-parent which > contains a complete distribution management section for rels and snaps. > I deployed it as snapshot and release to the hosted release repo. It > worked fine. > Meanwhile I altered my settings.xml and set nexus to mirrorOf "*". > It all worked fine when some sub probject used the parent pom as release > version since it was available through the group w/o declaring any repo > explicitly. > > Now another project declares the same parent as 1-SNAPSHOT and Maven did > not download the parent pom. This issue drove me crazy since I was > thinking that Nexus is the source of error. I tried again with Maven 3 > which told me that my mirror serves releases only (point 6 in [2], > thanks guys for the vastly improved logging). I was pissed because I > spent almost a day for finding this issue. > > Obviously, I wanted the my child projects to inherit as much as possible > from my snapshot super pom which is not pullable. > > What could be a good practice now? After some digging I found some > solutions/workarounds: > > 1. Declare a bogus repo with snapshots and releases to enable my mirror > proxy all content as describe in [1]. > Well, not very beautiful but universal. > 2. Declare the repos in the super pom and let children inherit it. > Won't work since this is a chicked-egg-problem. Can't download a > snapshot pom and enable for snapshots then :-( > 3. Declare in each pom every potentionally repo beside Central. > Would be a reasonable solution but way to verbose repeating the > same > information over and over again. This is reasonable for > repos which > aren't under your control, like Spring Source repos. > 4. Declare all used hosted repos in the settings.xml in a profile and > activate in by default or with a property in the actual project. > Sounds good but in the actual pom is not obvious where snapshots > and > releases for the same group id will be pulled. > 5. File a ticket for extending the mirror element in settings.xml by 2 > subelements: releases/enabled and snapshots/enabled. They simply tell > maven that this mirror will handle those type of artifacts by default. > Solves the issue but still suffers from the same as point 4. > > > None of them satisfy me nor do they represent a sound solution, merely > workarounds. I tend to pick point 1 or 4. Actually 4 because I do retain > some information. Point 1 completely drops every passive documentation > of used repos. > > What do you think? > > [1] > > http://www.sonatype.com/books/nexus-book/reference/maven-sect-single-group.html#ex-maven-nexus-simple > [2] > > https://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException > > -- > THANKS > > Mit freundlichem Gruß / Best regards > > Michael Osipov > > Siemens AG > Sector Industry, I DT IT LD Bln (Werkstudent) > mailto:michael.osi...@siemens.com