Source Repository

Maven projects use Git or Subversion to manage their source code: decisions to stay with Subversion or move to Git are tracked on Maven's Wiki.

Instructions on Subversion use can be found in the online book Version Control with Subversion. Instructions on Git use can be found in the online book Pro Git. Instructions for using the Apache Software Foundation Git repositories are at https://git-wip-us.apache.org.

Full Maven Sources

As described in the next paragraphs, Maven full source code is dispatched in more than 100 Git repos: Maven core, but also plugins or components, skins, a few svn2git read-only mirrors...

To check out full Maven source code easily, we provide a simple way using additional Google repo tool and an additional Git repository for tool's manifest:

Apache Maven full source code (GitHub mirror)
  1. Install a git client if needed and the Google Repo tool.
  2. Check out a new repo workspace and prepare master branch:
    repo init -u https://gitbox.apache.org/repos/asf/maven-sources.git
    repo sync
    repo start master --all
  3. In your IDE, import the projects you're interested in from the repo workspace. Or directly build with command line the component you want.

Maven Core

The Git repository for Maven contains a master branch which is the current development version. There is also a branch for maven-2.2.X or maven-3.0.x. In addition, the integration tests for the Maven core have their own repository.

Apache Maven (GitHub mirror)
Apache Maven Core ITs (GitHub mirror)

Other Components

The source repositories for the various plugins are in Git, listed in the documentation of the respective plugin, reachable via the plugin index.

There are also many shared components and subsystems with their own source repositories, mainly in Git, some in Subversion.

Components in Git

The components in Git are:

Apache Maven Archetype (GitHub mirror)
Apache Maven Archetypes (GitHub mirror)
Apache Maven Artifact Resolver (GitHub mirror)
Apache Maven Artifact Resolver Ant Tasks (GitHub mirror)
Apache Maven Distribution Checking Tool (GitHub mirror)
Apache Maven Enforcer (GitHub mirror)
Apache Maven JXR (GitHub mirror)
Apache Maven Indexer (GitHub mirror)
Apache Maven Plugin Testing (GitHub mirror)
Apache Maven Plugin Tools (GitHub mirror)
Apache Maven Release (Release api and plugin) (GitHub mirror)
Apache Maven SCM (GitHub mirror)
Apache Maven Surefire (GitHub mirror)
Apache Maven Wagon (GitHub mirror)
Plugins
Apache Maven ACR Plugin (GitHub mirror)
Apache Maven Ant Plugin (GitHub mirror)
Apache Maven AntRun Plugin (GitHub mirror)
Apache Maven Assembly Plugin (GitHub mirror)
Apache Maven Changelog Plugin (GitHub mirror)
Apache Maven Changes Plugin (GitHub mirror)
Apache Maven Checkstyle Plugin (GitHub mirror)
Apache Maven Plugin (GitHub mirror)
Apache Maven Compiler Plugin (GitHub mirror)
Apache Maven Dependency Plugin (GitHub mirror)
Apache Maven Deploy Plugin (GitHub mirror)
Apache Maven DOAP Plugin (GitHub mirror)
Apache Maven Documentation Checker Plugin (GitHub mirror)
Apache Maven EAR Plugin (GitHub mirror)
Apache Maven EJB Plugin (GitHub mirror)
Apache Maven GPG Plugin (GitHub mirror)
Apache Maven Help Plugin (GitHub mirror)
Apache Maven Install Plugin (GitHub mirror)
Apache Maven Invoker Plugin (GitHub mirror)
Apache Maven JAR Plugin (GitHub mirror)
Apache Maven Jarsigner Plugin (GitHub mirror)
Apache Maven Javadoc Plugin (GitHub mirror)
Apache Maven JDepRScan Plugin (GitHub mirror)
Apache Maven JDeps Plugin (GitHub mirror)
Apache Maven JLink Plugin (GitHub mirror)
Apache Maven JMod Plugin (GitHub mirror)
Apache Maven Linkcheck Plugin (GitHub mirror)
Apache Maven Plugin (GitHub mirror)
Apache Maven PDF Plugin (GitHub mirror)
Apache Maven PMD Plugin (GitHub mirror)
Apache Maven Project Info Reports Plugin (GitHub mirror)
Apache Maven RAR Plugin (GitHub mirror)
Apache Maven Remote Resources Plugin (GitHub mirror)
Apache Maven Repository Plugin (GitHub mirror)
Apache Maven Resources Plugin (GitHub mirror)
Apache Maven SCM Publish Plugin (GitHub mirror)
Apache Maven Scripting Plugin (GitHub mirror)
Apache Maven Shade Plugin (GitHub mirror)
Apache Maven Site Plugin (GitHub mirror)
Apache Maven Source Plugin (GitHub mirror)
Apache Maven Stage Plugin (GitHub mirror)
Apache Maven Toolchains Plugin (GitHub mirror)
Apache Maven Verifier Plugin (GitHub mirror)
Apache Maven WAR Plugin (GitHub mirror)
Parent POMs
Apache Parent POM (GitHub mirror)
Apache Maven Parent POMs (GitHub mirror)
Shared Components
Apache Maven Archiver (GitHub mirror)
Apache Maven Artifact Resolver (GitHub mirror)
Apache Maven Artifact Transfer (GitHub mirror)
Apache MavenCommon Artifact Filters (GitHub mirror)
Apache Maven Dependency Analyzer (GitHub mirror)
Apache Maven Dependency Tree (GitHub mirror)
Apache Maven Downloader (GitHub mirror)
Apache Maven Filtering (GitHub mirror)
Apache Maven Invoker (GitHub mirror)
Apache Maven Jarsigner (GitHub mirror)
Apache Maven Mapping (GitHub mirror)
Apache Maven OSGi (GitHub mirror)
Apache Maven Project Utils (GitHub mirror)
Apache Maven Reporting API (GitHub mirror)
Apache Maven Reporting Executor (GitHub mirror)
Apache Maven Reporting Implementation (GitHub mirror)
Apache Maven Respository Builder (GitHub mirror)
Apache Maven Runtime (GitHub mirror)
Apache Maven Script Interpreter (GitHub mirror)
Apache Maven Shared Incremental (GitHub mirror)
Apache Maven Shared IO (GitHub mirror)
Apache Maven Shared Jar (GitHub mirror)
Apache Maven Shared Resources (GitHub mirror)
Apache Maven Shared Utils (GitHub mirror)
Apache Maven Verifier (GitHub mirror)
Skins
Apache Maven Default Skin (GitHub mirror)
Apache Maven Fluido Skin (GitHub mirror)

Components in Subversion

Everything in Subversion can be checked-out from a single entry point, referencing each part through svn:externals

You can also check out every component separately. The components in Subversion are:

the Maven site (this site) (GitHub mirror)
Maven Sandbox (GitHub mirror)
A variety of other subsystems (including obsolete trees replaced by git)

Anonymous Access

Both subversion and git repositories may be cloned with either http or https. Only read-only access is available for http checkouts.

$ svn checkout http://svn.apache.org/repos/asf/maven/site/trunk

Developer Access

Everyone can access Subversion repositories via HTTP, but committers must checkout Subversion repositories via HTTPS to gain write access:

To commit changes to the repository, execute the following command to commit your changes (svn will prompt you for your password):

$ svn commit --username your-username -m "A message"

Access from behind a Firewall

For those users who are stuck behind a corporate firewall which is blocking HTTP access to the Subversion repository, you can try to access it via the developer connection:

Access through a Proxy

The Subversion client can go through a proxy, if you configure it to do so. First, edit your servers configuration file to indicate which proxy to use. The file's location depends on your operating system. On Linux or Unix it is located in the directory ~/.subversion. On Windows it is in %APPDATA%\Subversion (try echo %APPDATA%, note this is a hidden directory).

There are comments in the file explaining what to do. If you don't have that file, get the latest Subversion client and run any command; this will cause the configuration directory and template files to be created.

Example: Edit the servers file and add something like:

[global]
http-proxy-host = your.proxy.name
http-proxy-port = 3128