通过Maven?将Mercurial工作目录变更集id(如(838cb9c0367e)注入属性文件?
我们将Maven用于构建,Mercurial用于变更集。虽然我们的软件已经处理了一个主要版本,但我们确实希望能够知道Mercurial变更集用于构建运行我们软件的任何服务器通过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中获取工作目录的变更集,并将其放入属性文件或其他文件中,这样当系统管理员对当前运行的版本进行“健全检查”时,我们就可以在应用程序的某个地方显示它了吗?如果您可以截取命令输出(进入环境变量,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}