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]

Reply via email to