Maven Wagon SCM 使用

你需要为你的 pom 添加一些扩展:

并使用SCM 格式的 URL 。

对于非 subversion SCM,您可以在 settings.xml 文件中包含元素scmVersionTypescmVersion指定要使用的分支或标记。scmVersionType的值必须是branchtag之一。scmVersionType没有默认值,因此您必须使用scmVersion指定它才能产生任何效果。

将 Maven 站点部署到 SCM

简单地使用带有站点插件的 Wagon SCM 提供程序存在一些缺点:

  • 生成的站点可能有不一致的换行符(请参阅MSITE-121),从而阻止 SCM 签入,
  • 将站点部署到 SCM 将需要删除过时的页面,但尚未完成,
  • 站点插件方式对每个文件进行一次提交。

首选maven-scm-publish-plugin将您的网站发布到 SCM

Maven 3 用户注意事项:站点插件的行为不同,需要将它们添加为依赖项而不是扩展名。请参阅添加协议以部署站点

将 Maven 站点部署到 Subversion

将以下扩展添加到您的 pom 并在 distributionManagement 站点 url 中使用 wagon-scm url。

  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-scm</artifactId>
        <version>3.5.1</version>
      </extension>
      <extension>
        <groupId>org.apache.maven.scm</groupId>
        <artifactId>maven-scm-manager-plexus</artifactId>
        <version>1.11.1</version>
      </extension>
      <extension>
        <groupId>org.apache.maven.scm</groupId>
        <artifactId>maven-scm-provider-svnexe</artifactId>
        <version>1.11.1</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>

将 Maven 站点部署到 CVS

与以前相同,但将 svnexe 更改为 cvsexe 并使用 CVS svn url。

  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-scm</artifactId>
        <version>3.5.1</version>
      </extension>
      <extension>
        <groupId>org.apache.maven.scm</groupId>
        <artifactId>maven-scm-manager-plexus</artifactId>
        <version>1.11.1</version>
      </extension>
      <extension>
        <groupId>org.apache.maven.scm</groupId>
        <artifactId>maven-scm-provider-cvsexe</artifactId>
        <version>1.11.1</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>

将 Maven 站点部署到 GitHub 的 gh-pages

与以前相同,但将 svnexe 更改为 gitexe 并使用 Git svn url。

  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-scm</artifactId>
        <version>3.5.1</version>
      </extension>
      <extension>
        <groupId>org.apache.maven.scm</groupId>
        <artifactId>maven-scm-manager-plexus</artifactId>
        <version>1.11.1</version>
      </extension>
      <extension>
        <groupId>org.apache.maven.scm</groupId>
        <artifactId>maven-scm-provider-gitexe</artifactId>
        <version>1.11.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>
  <!-- if the extension mecanism do not work, use plugin dependency instead -->
  <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>${maven-site-plugin.version}</version>
        <dependencies>
            <dependency>
                <groupId>org.apache.maven.doxia</groupId>
                <artifactId>doxia-module-markdown</artifactId>
                <version>1.11.1</version>
               </dependency>
            <dependency>
                <groupId>org.apache.maven.scm</groupId>
                <artifactId>maven-scm-provider-gitexe</artifactId>
                <version>1.11.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-scm</artifactId>
                <version>1.11.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven.scm</groupId>
                <artifactId>maven-scm-manager-plexus</artifactId>
                <version>1.11.1</version>
            </dependency>
        </dependencies>
  </plugin>

在您的 settings.xml 文件中:

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

在 Maven 2 中使用基于 SCM 的远程存储库

在 Maven 2 中使用基于 Subversion 的远程存储库

尚未测试

在 Maven 2 中使用基于 CVS 的远程存储库

尚未测试