Maven Wagon SCM Usage

You need to add some extensions (wagon-scm, maven-scm-manager-plexus and the maven-scm-provider for your SCM system, see examples below) to your pom and use URLs in the SCM format.

For non-subversion SCM, in your settings.xml file you can include the elements scmVersionType and scmVersion to specify a branch or tag to use. The value of scmVersionType must be one of branch or tag. There is no default value for scmVersionType so you MUST specify it with scmVersion in order to have any effect.

Deploying your Maven site to Subversion

Add the following extensions to your pom and use a wagon-scm url in the distributionManagement site url.

  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-scm</artifactId>
        <version>2.1</version>
      </extension>
      <extension>
        <groupId>org.apache.maven.scm</groupId>
        <artifactId>maven-scm-manager-plexus</artifactId>
        <version>1.5</version>
      </extension>
      <extension>
        <groupId>org.apache.maven.scm</groupId>
        <artifactId>maven-scm-provider-svnexe</artifactId>
        <version>1.5</version>
      </extension>
    </extensions>
  </build>
  <distributionManagement>
    <site>
      <id>my.svn.server</id>
      <url>scm:svn:https://username@svn.apache.org/svn/root/module</url>
    </site>
  </distributionManagement>

Deploying your Maven site to CVS

Same as before, but changing svnexe to cvsexe and using a CVS svn url.

  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-scm</artifactId>
        <version>2.1</version>
      </extension>
      <extension>
        <groupId>org.apache.maven.scm</groupId>
        <artifactId>maven-scm-manager-plexus</artifactId>
        <version>1.5</version>
      </extension>
      <extension>
        <groupId>org.apache.maven.scm</groupId>
        <artifactId>maven-scm-provider-cvsexe</artifactId>
        <version>1.5</version>
      </extension>
    </extensions>
  </build>
  <distributionManagement>
    <site>
      <id>my.cvs.server</id>
      <url>scm:cvs:ext:username@cvs.apache.org:/cvs/root:module</url>
    </site>
  </distributionManagement>

Deploying your Maven site to GitHub's gh-pages

Same as before, but changing svnexe to gitexe and using a Git svn url.

  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-scm</artifactId>
        <version>2.1</version>
      </extension>
      <extension>
        <groupId>org.apache.maven.scm</groupId>
        <artifactId>maven-scm-manager-plexus</artifactId>
        <version>2.1</version>
      </extension>
      <extension>
        <groupId>org.apache.maven.scm</groupId>
        <artifactId>maven-scm-provider-gitexe</artifactId>
        <version>2.1</version>
      </extension>
    </extensions>
  </build>
  <distributionManagement>
    <site>
      <id>my.git.server</id>
      <url>scm:git:ssh://git@github.com/myuser/myproject.git</url>
    </site>
  </distributionManagement>

And in your settings.xml file:

  <server>
    <id>my.git.server</id>
    <username>git</username>
    <scmVersionType>branch</scmVersionType>
    <scmVersion>gh-pages</scmVersion>
  </server>

Using a Subversion based remote repository in Maven 2

Not tested yet

Using a CVS based remote repository in Maven 2

Not tested yet