Hi Jason,

first, thanks that you actually take your time to look into it!

Jason van Zyl wrote:

> I unpacked your example and ran your preparation script and it fails in
> 2.2.1 as well:
> 
> https://gist.github.com/jvanzyl/5824206

The submodules are independent projects, you have to run "clean install". 
See the following session (I have modified the POMs of the children by 
adding a "<relativePath/>" element, the original example is now ~2 years 
old):

https://gist.github.com/joehni/6aa8516bd5408144ec53

Note, that after a successful run with M221, the build with M3x will no 
longer fail, but pack stale snapshots. To raise an error, you have to clean 
the repo from snapshots in <repohome>/bugs/maven.

> What's the overall usecase? You have a build with snapshots and you find
> you need to go back to a release so you lock down to a previous release
> and want to use that?

The final distribution of our product or projects typically consists of 
hundreds of artifacts, where most of them have individual release cycles. In 
the HEAD revision those are linked in a nested directory structure using 
"builder POMs" i.e. POMs that have only modules declared, but get never 
released themselves (like the POM in the root of the example). The versions 
of the individual artifact are managed in a shared parent POM. In HEAD those 
are typically all snapshot versions.

This changes after a major release of the overall product, then all those 
versions become final, the shared parent is released first followed by all 
other artifacts in dependency order using this released parent. This works 
all fine.

Now we get into maintenance mode of that major release. Due to the 
independence of the artifacts we have to branch only the affected projects 
in case of bugs. Say we have JAR artifacts JAR-A to JAR-Z and we develop bug 
fixes for JAR-C and JAR-S. This means we branch the shared parent, set JAR-C 
and JAR-S to snapshot and also the artifacts that will assemble those to two 
jars, say WAR-X and DIST-ZIP. Then we create a builder for the maintenance 
branch that contains those jars, the war and the distribution zip as module. 
Building this we should get a war that contains JAR-C and JAR-S as snapshot 
and all the others as release and the distribution contains the affected 
WAR-X as snapshot and all other stuff as released version - the perfect 
situation to test the fix.

Unfortunately M3 fails here, because it is under some circumstance not able 
to calculate the proper build order (maybe it does no longer take attached 
snapshot artifacts into account ?!?) and will either pack a stale snapshot 
from the local repository or fail, because the snapshot is built at a later 
time.

> If you want to iteratively work on it together put it in a github repo.

If you bear with me, may day-to-day work is with svn only and my learning 
curve with git/github is still steep, e.g. I did not know about gists, so I 
already learned something new.

Cheers and thanks for your time,
Jörg



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to