Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 2 Mercurial Maven发布插件问题_Maven 2_Mercurial_Bitbucket_Maven Release Plugin - Fatal编程技术网

Maven 2 Mercurial Maven发布插件问题

Maven 2 Mercurial Maven发布插件问题,maven-2,mercurial,bitbucket,maven-release-plugin,Maven 2,Mercurial,Bitbucket,Maven Release Plugin,我喜欢使用Maven和分布式SCM,比如Mercurial(BitBucket) 然而,随着我的项目规模的扩大和Hg存储库的增长,我发现Maven发布插件越来越难以使用 主要的问题是,当调用mvn release:prepare时,Maven没有利用Hg的分布式特性,而是执行整个存储库的完整克隆以放入临时目录 早在2009年,法布里齐奥·朱迪奇(Fabrizio Giudici)就对这一问题进行了详细的记录 我本以为Sonatype现在可能已经更新了插件,但遗憾的是,我们仍然需要在发布之前下载

我喜欢使用Maven和分布式SCM,比如Mercurial(BitBucket)

然而,随着我的项目规模的扩大和Hg存储库的增长,我发现Maven发布插件越来越难以使用

主要的问题是,当调用
mvn release:prepare
时,Maven没有利用Hg的分布式特性,而是执行整个存储库的完整克隆以放入临时目录

早在2009年,法布里齐奥·朱迪奇(Fabrizio Giudici)就对这一问题进行了详细的记录

我本以为Sonatype现在可能已经更新了插件,但遗憾的是,我们仍然需要在发布之前下载整个repo


我希望联系StackOverflow社区,看看是否还有其他人遇到过这个问题,是否有人想出了新的方法来解决maven发布时可怕的完整克隆。

这就是我为避免maven多推mercurial而做的事:

首先,确保通过以下方式使用正确版本的插件处理mercurial类型的scm:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
        <tagNameFormat>@{project.version}</tagNameFormat>
    </configuration>
</plugin>
注意
pushChanges=false
属性

if all ok then
    hg push
    mvn release:perform
else
    mvn release:clean
    and have fun removing the changeset from local hg repo
endif

您的hg存储库有多大?它不是太大,但我可以看到稍后会出现问题。现在大约是50mbs他们Farid,不错。。。我还没试过,但国旗看起来很有希望。下面的代码。。。这应该是你建议我根据发生的情况执行的伪代码吗?是的,它是伪代码,但你可以使用任何脚本工具(dos、shell等)使用mavenhiya的返回错误代码来处理它,如果答案回答了请求,不要忘记接受答案。如果出现错误,删除本地变更集有什么有趣的原因吗?“hg回滚”难道不足够吗?在大多数情况下,是的,hg回滚就足够了,可能需要一些轻微的手动文件删除。
if all ok then
    hg push
    mvn release:perform
else
    mvn release:clean
    and have fun removing the changeset from local hg repo
endif