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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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?将Mercurial工作目录变更集id(如(838cb9c0367e)注入属性文件?_Maven_Mercurial_Versioning_Buildnumber Maven Plugin - Fatal编程技术网

通过Maven?将Mercurial工作目录变更集id(如(838cb9c0367e)注入属性文件?

通过Maven?将Mercurial工作目录变更集id(如(838cb9c0367e)注入属性文件?,maven,mercurial,versioning,buildnumber-maven-plugin,Maven,Mercurial,Versioning,Buildnumber Maven Plugin,我们将Maven用于构建,Mercurial用于变更集。虽然我们的软件已经处理了一个主要版本,但我们确实希望能够知道Mercurial变更集用于构建运行我们软件的任何服务器 有人知道Maven中有什么方法可以在Mercurial中获取工作目录的变更集,并将其放入属性文件或其他文件中,这样当系统管理员对当前运行的版本进行“健全检查”时,我们就可以在应用程序的某个地方显示它了吗?如果您可以截取命令输出(进入环境变量,f.e)hgid-i将是一种简单的方法。可以使用hglog--template“…”

我们将Maven用于构建,Mercurial用于变更集。虽然我们的软件已经处理了一个主要版本,但我们确实希望能够知道Mercurial变更集用于构建运行我们软件的任何服务器


有人知道Maven中有什么方法可以在Mercurial中获取工作目录的变更集,并将其放入属性文件或其他文件中,这样当系统管理员对当前运行的版本进行“健全检查”时,我们就可以在应用程序的某个地方显示它了吗?

如果您可以截取命令输出(进入环境变量,f.e)
hgid-i
将是一种简单的方法。可以使用
hglog--template“…”构建更复杂的id提示

您可以使用Maven的antrun插件运行一个
任务,该任务会生成一个包含该信息的属性文件。但这不是很优雅。

您可以制作一个更新钩子,将变更集ID输出到一个未版本的.properties文件中:

[hooks]
update = echo changesetid=$HG_PARENT1 > version.properties
这种方法的优点是,如果需要,您可以轻松地自定义此值,并且构建保持独立于版本控制系统(或缺少版本控制系统)


如果您想在生成它的Maven构建中添加一些内容,您是否查看了(目标)或?

将其合并到您的
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>
如果需要更多属性,您还可以使用org.codehaus.mojo.buildnumber-maven-plugin

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

    <plugins>
        <plugin>
            <groupId>com.github.volodya-lombrozo</groupId>
            <artifactId>hg-revision-plugin</artifactId>
            <version>0.2</version>
            <executions>
                <execution>
                    <phase>validate</phase>
                    <goals>
                        <goal>
                            scan
                        </goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

不了解maven,但使用
hgid-i
可以轻松检索当前变更集。这看起来或多或少是一个相同的问题:
 <build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>

    <plugins>
        <plugin>
            <groupId>com.github.volodya-lombrozo</groupId>
            <artifactId>hg-revision-plugin</artifactId>
            <version>0.2</version>
            <executions>
                <execution>
                    <phase>validate</phase>
                    <goals>
                        <goal>
                            scan
                        </goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
hg.author=${hg.author}
hg.branch=${hg.branch}
hg.revision=${hg.rev}
hg.node=${hg.node}
hg.tags=${hg.tags}
hg.desc=${hg.desc}
hg.date=${hg.date}