6

ビルドにはMavenを使用し、チェンジセットにはMercurialを使用します。私たちのソフトウェアにはすでにメジャーバージョンが処理されていますが、ソフトウェアを実行するサーバーを構築するためにどのMercurialチェンジセットが使用されたかを知りたいと思っています。

MavenでMercurialの作業ディレクトリのチェンジセットを取得し、プロパティファイルなどに取得して、システム管理者が現在実行中のバージョンに対して「健全性チェック」を行ったときにアプリケーションのどこかに表示できるようにする方法を知っている人はいますか? ?

4

5 に答える 5

7

変更セット ID をバージョン管理されていない .properties ファイルに出力する更新フックを作成できます。

[hooks]
update = echo changesetid=$HG_PARENT1 > version.properties

このアプローチの利点は、必要に応じてこの値を簡単にカスタマイズできることと、ビルドがバージョン管理システム (またはその欠如) から独立したままになることです。

代わりにそれを生成する Maven ビルドに何かを入れたい場合は、Buildnumber Maven Plugin ( hgchangesetゴール) またはMaven Mercurial Build Number Pluginを見ましたか?

于 2011-10-26T10:02:26.343 に答える
6

これをあなたのにマージしますpom.xml

<project>
  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>

    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>buildnumber-maven-plugin</artifactId>
        <executions>
          <execution>
            <phase>validate</phase>
            <goals>
              <goal>hgchangeset</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

次に、プロパティを に設定して.propertiesファイルを作成します。例えば:src/main/resources${changeSet}

revision = ${changeSet}
modificationTime = ${changeSetDate}
于 2011-10-28T09:26:15.417 に答える
0

コマンド出力を (環境変数 fe に) インターセプトできる場合は、hg id -i簡単な方法になります。より複雑な ID は次のように構築できます。hg log --template "..." tip

于 2011-10-26T00:52:54.387 に答える
0

Maven の antrun プラグインを使用して、その情報を含むプロパティ ファイルを生成する<exec>またはタスクを実行できます。<java>ただし、これはあまりエレガントではありません。

于 2011-10-26T08:01:01.440 に答える