Maven + Mercurial + Site Deploy问题

Ada*_*ent 4 mercurial maven-2 google-code

我正在尝试使用mercurial将我的Maven生成的站点部署到googlecode项目.当我做的时候

mvn site:deploy
Run Code Online (Sandbox Code Playgroud)

我收到转移错误:org.apache.maven.scm.NoSuchCommandScmException:没有这样的命令'list'.

就像它试图做一个"svn列表",即使我使用的是mercurial.

在我的pom我有maven旅行车和mercurial设置(我认为正确):

org.apache.maven.wagon wagon-scm 1.0-beta-6 org.apache.maven.scm maven-scm-provider-hg 1.4

然后,对于我的站点部署,我有一个单独的mercurial存储库:

   <distributionManagement>
  <site>
   <id>googlecode</id>
   <name>googlecode site</name>
   <url>scm:hg:${project.site.scm}/</url>
  </site>
   </distributionManagement>
Run Code Online (Sandbox Code Playgroud)

在我的settings.xml中,我有:

  <servers>
  <server>
    <id>googlecode</id>
    <username>...</username>
    <password>...</password>
  </server>
  </servers>
Run Code Online (Sandbox Code Playgroud)

The*_*eLQ 5

偶然发现这个问题并认为我会为其他人提供答案,因为如何做到这一点的文档是稀疏的:

很长一段时间以来,我已成功在使用Mercurial的Google Code存储库中托管我的网站.它运作良好,我遇到的问题很少

首先,您必须转到您的项目,选项卡"管理",子选项卡"源",并创建一个名为"站点"的新存储库.然后,您必须提交并推送至少一个文件,方便地称为"index.html"到该存储库,因为SCM插件调用的"hg locate"在完全空的存储库上失败.

我在我的POM中将其部署到http://site.MYREPO.googlecode.com/hg

<build>
    <plugins>
        ...
        <!--Deploy site with Mercurial (Hg)-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>3.0-beta-3</version>
            <dependencies>
                <dependency>
                    <groupId>org.apache.maven.scm</groupId>
                    <artifactId>maven-scm-api</artifactId>
                    <version>1.5</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.maven.scm</groupId>
                    <artifactId>maven-scm-provider-hg</artifactId>
                    <version>1.5</version>
                </dependency>
            </dependencies>
        </plugin>
        ...
    </plugins>
</build>

<!--
    Distribution
-->
<distributionManagement>
    <!--Site deploy repository-->
    <site>
        <id>MYREPO.googlecode.com</id>
        <url>scm:hg:https://site.MYREPO.googlecode.com/hg</url>
    </site>
</distributionManagement>
Run Code Online (Sandbox Code Playgroud)

然后你必须告诉Maven你的用户名和密码,所以把它添加到你的Maven settings.xml文件中(注意@字符是HTML编码的Mercurial会正常阻塞它)

<settings>
    <servers>
        <server>
            <id>MYREPO.googlecode.com</id>
            <username>MYEMAIL%40gmail.com</username>
            <password>MYPASSWORD</password>
        </server>
    </servers>
</settings>
Run Code Online (Sandbox Code Playgroud)

现在,您可以mvn clean site site:deploy访问http://site.MYREPO.googlecode.com/hg/index.html以获取完整的maven站点.