Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

It will talk a little of development cycle and the fact that the artifact must be stored somewhere

This page is currently under construction.   I expect to have it done no later than 2006-11-05 - Mykel

 

 
Maven repositories are arbitrary and acessible locations designed to store the artifacts that maven builds produce.  Over the course of the development process, a project will produce versions of its output for consumption by other projects.  Ultimately, applications are assembled by combining various artifacts and packaging them together into usable software.  These artifacts to be packaged have to reside somewhere, and that's where the maven repository comes in.  Maven repositories are the central location for maven artifacts, and maven itself knows how to traverse the structure of maven repositories in order to acquire artifacts that the current build needs but does not have direct (and local) access to.

...

A single repository is defined in the Maven Super POM  as "central".  This repository is hosted at Ibiblio, and is noted in the Super POM as http://repo1.maven.org/maven2. Also accessible is http://www.ibiblio.org/maven2, which is or at least was an alias for the URL defined in the Super POM.  TODO Could someone determine what the exact situation is as of now?

 

 Local Repository 

Ultimately, all artifacts used in the course of a build are retrieved from the local repository, because any required artifact is downloaded into the local repository where it becomes accessible by the build.  Thus, effectively, maven never really uses the artifacts that are stored remotely.  Instead, it makes a copy of the remote artifact into the local repository and uses that.  This distinction is often lost on manen newbies.

...

Snapshot repositories are denoted by having their snapshots tag set to true in the repository definition. 

TODO More on snapshots in snapshot repositories 

Internal vs. External repositories

...

One answer is to have seperate SNAPSHOT repositories for each group, where the artifacts for a given group have definitions for that groups snapshot repo, probably within a group parent POM.  Another repository defined in all repositories, maybe in an enterprise parent POM, is the general release repository.  Thus, group 1's internal development could internally depend on group 1's snapshots and then when artifacts are capable of being released, they could then be released to the general release repo and thus accessible by the other groups.

TODO Explain this better