A Maven2 Repository : An Introduction
Maven repository Types:
- Public remote external repository: This
public external repository exists at ibiblio.org and maven synchronizes with
- Private remote internal repository: We set up
this repository and make changes in the maven's pom.xml or settings.xml file
- Local repository: This repository is
maintained by the developer and stays on the developer's machine. It is
synchronous to the maven repository defined in the settings.xml file that
exists in the .m2 directory at its standard location i.e. C:\Documents and Settings\Administrator.
If no private internal repository is setup and not listed in the pom.xml
or in the setting.xml then the local repository exists on the developer's
machine is synchronized with the public maven repository at ibiblio.org.
Advantages of having an internal private repository
- Reduces conflicts among likelihood versions.
- To build first time it requires less manual intervention.
- Rather than having several separate independent libraries
it provides a
single central reference repository for all the dependent software
- It quickly builds the project while using an internal repository as maven
artifacts are retrieved from the intranet server rather than retrieving from
the server on internet.
Internal private repository of an organization:
Use cases for maven repository:
- It creates two sub-repository inside the internal
- Downloads ibiblio-cache from ibiblio for artifacts
and make it available publically. This synchronizes with external repository
- internal-maven-repository: used for internal
artifacts of an organization. It contains unique artifacts for the
organization and is not synchronized with any repository.
- Alternatively, another sub-repository that is not
at ibiblio can be created for artifacts. This does not synchronize with
any external repository.
- Browse the remote repository by using a web
- Search the artifacts in the repository.
- Download code from version control and make
changes in settings.xml to point to the internal repository and build
without any manual intervention.
- Install new version of the artifacts.
- Import artifacts into the repository in bulk.
- Export artifacts from the repository in bulk.
- Setup the task to backup the repository
Criteria for choosing a maven repository
implementation: In ideal condition a maven repository implementation should
- Free and open source
- Provide admin tools
- Easy to setup and use
- Provide backup facility
- Able to create, edit and delete sub repositories.
- Anonymous read only access and also access control
- Deployable in any standard web server such as Tomcat
- Issue tracker, forums and other independent source
- Active community developers make the product
enhanced and bugs fixed.
- Bulk import/export facility to move groups of
artifacts into the repository and out of the repository.
- Provide a repository browser: should be a web
browser instead of the desktop application.