On Dec 16, 2006, at 6:08 AM, Jason van Zyl wrote:
I think that the mvn build we have no is already fairly hard for folks to comprehend and would probably fall apart unless someone like me was here to answer everyones questions and monitor changes to keep things in check. I think that is no different than if we were using Ant.

I think you under estimate what other people know about Maven in that they can apply their knowledge of the infrastructure from other projects here provided you're following standard conventions. And it's complicated because you're fighting a losing battle with too many SNAPSHOTs. Even if the snapshot artifact resolution was perfect you would still have these problems. You are getting bitten by some severe technical problems in Maven, no doubt, but you are exacerbating the situation by using the "SNAPSHOT" identifier everywhere which inherently means "a shifting pile of sand" to Maven. Start moving to eliminate them and your instabilities will lessen tremendously.

Why the heck are you going off on SNAPSHOTS? The mail I send initially was talking about versioning of a project's modules... and some pitfalls with remote repositories... and you basically turned that into SNAPSHOT this and SNAPSHOT that...


I actually think that Ant + a few tasks to manage limited remote dep inclusion + groovy scripting would be a very powerful combination and would be at least half as complicated as our Maven build.

That's what people always say, but I have first hand experience with many large companies with large builds and they are moving away from their homebrew systems because they are sinking projects. If you used Maven in a way you describe above you would have stability i.e. no snapshots. If you're going to script something then create a plugin to walk your dependencies and replace the "SNAPSHOT" markers with real timestamps and you will have stability. You are so much closer to having something working all the time then you think.

Again with the SNAPSHOT muck... its more about the entire remote repo handling than it is about SNAPSHOTS. Even if a project did not use any SNAPSHOTS, then same basic problems with remote repos exist... they are not part of the direct audit trail of the project, its quite easy for anyone to change any artifact which could completely fuck your build over, with out you even knowing about it.

If you take the remote repository out of the mix, then this can't happen... since all of your inputs must be local, and probably in your source control repo, you have a changelog, you can see when someone changes an artifact and with a build automation system setup you can see when those changes break things. Your build is also not at the mercy of your network connectivity... and thus less likely to freak out when a network hickup occurs, less likely to waste your time building 80% of a project just to have it die on a missing dependency due to a repo being blacklisted. This is my point... nothing at all to do with using SNAPSHOTS or not.

Ant does not force a remote repo on to its projects, and IMO that is a huge plus over Maven. Maven still has its plugins and reactor going for it though. I still like Maven... I just want to have complete control over how and when it uses its remoteness to pull in stuff that will affect my builds. And more so I want to be able to disable its default remoteness (central) and hardcode my projects to use a svn-based repo implementation that will always have the right versions of my dependencies.


I still think remote repos suck... but, maybe you guys will eventually find a better solution to that.

I don't think they suck, I think you're just getting bitten severely by the erratic snapshot handling and overuse of snapshots. We will eventually get the repository under control as it's clear now they have become a mission critical resource for many people, we understand that and it will be fixed. There's going to be a lot of bitching when we actually turn on the gauntlet. Any release, for example which contains a "SNAPSHOT" identifier anywhere in the graph will simply be rejected.

No... as explained above... its much, much, much more than the limited SNAPSHOT context which you seem to be stuck in.

--jason


Reply via email to