You are right that this is common situation.

The groupid is your company's domain possibly followed by a projectID.
The artifactID is the identifier of the module.
The version for a release is the release number in the form of x.y.z or, less frequently, x.y.z.n. The version for a SNAPSHOT is the release that you are working towards followed by - "-SNAPSHOT".

The artifact repository will keep track of the releases and each of the SNAPSHOTs that get deployed to the repository.

The SCM will keep track of code as trunk, branches and tags which will relate to the GAV but will contain projects that have been synchronized between the individual' s workstation version and the SCM.


The individual developer works with a POM that defines the project that they are working on as a SNAPSHOT that depends on releases provided by third parties and other developers as well as SNAPSHOTS that are under development by the individual or have been deployed by other developers into the repository as interim code that is suitable for some sort of use by others but not yet released as a finished version of the module.


You should read some of the books on Maven.
Read the documentation for your Maven repository.

Ron

On 01/09/2012 12:10 PM, KARR, DAVID wrote:
I assume that many of you using Maven every day work with large applications in 
the following context:

* The application consists of numerous individual projects
* There are several development teams, some focusing on specific projects, some 
on multiples
* There are multiple release trains in process at once

In this context, one problem you have to solve is managing the coordinates of 
these individual projects.  The problem is that each of these individual 
projects each have multiple variations, depending on separate changes going 
into each release train.  For each release, some of these projects may need to 
use the trunk version, and some need to use the version on the release branch.

I had first thought that this would be done by varying the groupid according to a 
release, which would result in all artifacts going into a single repository tree.  I 
recently realized that perhaps a better approach is not to put a release modifier into 
the coordinates, but simply have each release use a different branch of the repository 
tree.  If we did that, however, is it possible to have a build retrieve some projects 
from a "trunk" branch of the repo, and some projects form the release branch of 
the repo?

What are some workable strategies for this?

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]




--
Ron Wheeler
President
Artifact Software Inc
email: [email protected]
skype: ronaldmwheeler
phone: 866-970-2435, ext 102


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to