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.
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.0</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>
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.0</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>
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.0</version> </extension> <extension> <groupId>org.apache.maven.scm</groupId> <artifactId>maven-scm-manager-plexus</artifactId> <version>2.0</version> </extension> <extension> <groupId>org.apache.maven.scm</groupId> <artifactId>maven-scm-provider-gitexe</artifactId> <version>2.0</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>