Hi Todd, I came to exactly same conclusions as you did and even applied that approach in our team. I have set up our projects to use local intranet repository for snapshot builds and external production repository for released builds. But it has definitely some inconveniences. And I am wondering too how to set up everyday developer's work in the right way. I have some particular questions:
1. How to distinguish snapshot build versions correctly? So that one snapshot build would not overwrite previous one in the repository. 2. How to set up correctly CI server to perform nightly and release builds not using maven SCM plug-ins (since our CI system has far richer functionality in this field). 3. When a developer starts a build on his own machine which version should he use? There is always a risk that he will destroy an artifact in the repository. 4. How to perform automatic pom project version update? I am not talking about updating dependency versions to the "latest version". I want to have a build version passed from the CI server automatically in the pom file in the repository. At the moment the recommended way is to update it manually, as I understand. There are some more minor questions related to maven application to non-java projects. Best Regards, Sergey Shcherbakov. -----Original Message----- From: Todd Thiessen [mailto:[email protected]] Sent: Tuesday, April 07, 2009 3:32 PM To: Maven Users List Cc: Guillaume Goulet; Kevin Coupland; Kyle Blaney Subject: Understanding SNAPSHOTS I have been thinking alot lately about SNAPSHOTS and how to best utilize them. I think I perhaps have misunderstood them and I wanted to see what kind of responses I get from the community, particularly from the guys at Sonatype. I took a look at Nexus (which I am using as a good example of a Maven project) to see what kind of versioning it uses. Users of Nexus generally only ever see released versions of it. ie: version 1.2.0.1, 1.2.0.2, 1.3.0 and so on and so forth. Does the Nexus dev team ever create a release of Nexus that is meant for internal purposes only? For instance, do you have a verification team and if so, how do you distribute a build that you want the verification team to test? I suspect your verificaton is done on a SNAPSHOT version, which I believe is one of my big misconceptions of what SNAPSHOTS are meant for. I have always thought of SNAPSHOTS as a version that is strictly meant to track nightly builds or builds between developers. However, now I am not so sure. Is it reasonable to work with a SNAPSHOT in your local repostiory, do a number of unit tests and sanity on that SNAPSHOT and then deploy a version of that SNAPSHOT to your corporate maven repository to share with the rest of the company/community so that they can use it and test against it? A SNAPSHOT is time stamped so a consumer can always know exactly what version they are using. Am I off my rocker? (well, I supose thats a seperate question ;-)) --- Todd Thiessen --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
