maven-2 - Maven + Mercurial + 站点部署问题

标签 maven-2 mercurial google-code

我正在尝试使用 Mercurial 将 Maven 生成的站点部署到 googlecode 项目。 当我做一个

mvn site:deploy

我收到传输错误:org.apache.maven.scm.NoSuchCommandScmException:没有这样的命令“列表”。

这就像尝试做一个“svn list”,即使我使用的是 Mercurial。

在我的 pom 中,我有 Maven Wagon 和 Mercurial 设置(我认为正确):

org.apache.maven.wagon 货车-SCM 1.0-β-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>

在我的 settings.xml 中,我有:

  <servers>
  <server>
    <id>googlecode</id>
    <username>...</username>
    <password>...</password>
  </server>
  </servers>

最佳答案

偶然发现这个问题,并认为我会为其他人提供答案,因为有关如何执行此操作的文档很少:

在相当长的一段时间里,我已经成功地将我的网站托管在使用 Mercurial 的 Google 代码存储库中。它运行良好,我遇到的问题很少

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

我的 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>

然后,您必须告诉 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>

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

关于maven-2 - Maven + Mercurial + 站点部署问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3826128/

相关文章:

java - 用Java程序提供帮助内容

c++ - 谷歌日志条目是否被互斥体包裹?

svn - 如何将文件添加到谷歌代码上的项目?

java - Netbeans 不会下载 Maven Artifact

mercurial - Hg 寻呼机扩展不适用于 'blame'

git - 在没有 IDE 集成的情况下如何使用源代码管理?

netbeans - 未跟踪 Mercurial Netbeans 输出文件!

maven-2 - maven手动安装文件没有版本

maven-2 - 获取maven依赖的最佳方式

maven-2 - Maven 快照更新