【问题标题】:Maven + Mercurial for Build Numbers用于内部版本号的 Maven + Mercurial
【发布时间】:2011-04-25 11:28:03
【问题描述】:

我不知道如何将 Mercurial 修订 ID 放入我的 Maven 构建中(理想情况下,我希望它出现在我的 jars 和 war 的清单中)。

我能找到的最接近的解决方案是:

mvn -DbuildNumber=`hg id -i`

这不适用于 Windows 或我的 Hudson 服务器。 幸运的是,Hudson 标记了我的构建,但如果构建也使用 Mercurial changset id 进行标记,我希望得到更多保证。

【问题讨论】:

    标签: maven-2 mercurial build-process hudson build-numbers


    【解决方案1】:

    查看this previous question 和已接受答案的链接。基本上,您想要做同样的事情,只是您需要使用带有 Mercurial 的 buildnumber:hgchangeset 目标来获取内容为 hg id -ichangeset 属性。

    【讨论】:

      【解决方案2】:

      很遗憾,hg id -i 太长,无法使用。我创建了一个脚本来计算准确的内部版本号。但是,有两个例外。如果分支上没有以前的版本,则它不能有效。如果本地 repo 有变化,那么它是无效的。在我的构建脚本中,每当发生这种情况时,我都会将构建标记为“x.x.UNSTABLE”。

      我使用 REL_PATTERN 来获取当前分支中标记为实际发布的最后一个标签。然后我通过跟踪该版本的提交日志计数 + 自该版本以来对分支的所有提交来计算内部版本号。

      #!/bin/bash
      REL_PATTERN="release-[0-9]*\.[0-9]*\.[0-9]*"
      BRANCH=$( hg branch )
      CURR_REV=$( hg id -n )
      if [  "${CURR_REV: -1}" = "+" ] ; then
        echo "ERROR: This workspace contains uncommitted code. Cannot calculate build number" >&2
        echo "UNSTABLE"
        exit 1
      fi
      RELEASE=$( hg log --rev="branch($BRANCH) and tag() and 1:$CURR_REV" -T "{tags} {rev}\n"|grep "${REL_PATTERN} "|tail -1 )
      if [ "$RELEASE" = "" ] ; then
        echo "ERROR: Unable to locate version tag" >&2
        echo "UNSTABLE"
        exit 1
      fi
      RELEASE_REV=$( echo $RELEASE|cut -f 2 -d ' ' )
      RELEASE_TAG=$( echo $RELEASE|cut -f 1 -d ' ' )
      REVS=$( hg log -P $RELEASE_REV -b $BRANCH -T "{rev}\n"|wc -l )
      BUILD=$( hg log -r1:$CURR_REV -P $RELEASE_REV -b $BRANCH -T "{rev}\n"|wc -l )
      echo "BRANCH=$BRANCH" >&2
      echo "CURR_REV=$CURR_REV" >&2
      echo "RELEASE_REV=$RELEASE_REV" >&2
      echo "RELEASE_TAG=$RELEASE_TAG" >&2
      echo "BUILD=$BUILD" >&2
      echo $BUILD
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-11
        • 2018-07-16
        • 2016-08-16
        • 2017-05-05
        • 2011-10-20
        • 2023-04-04
        • 2011-08-28
        相关资源
        最近更新 更多