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

Reply via email to