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
使用mecurial分支名称作为maven版本_Maven_Mercurial_Versioning_Maven Plugin - Fatal编程技术网

使用mecurial分支名称作为maven版本

使用mecurial分支名称作为maven版本,maven,mercurial,versioning,maven-plugin,Maven,Mercurial,Versioning,Maven Plugin,我目前正在为我的maven项目建立一个mecurial存储库 这个maven项目由几个模块组成。当我创建包含所有已创建JAR的安装zip时,所有模块的版本都相同 到目前为止,我已经使用父pom中的一个属性实现了这一点,模块在构建时使用该属性。到目前为止,一切都很好,我只有一个立场改变时,我想改变的版本 现在我有了ingenius(=怪异)的想法,将mecurial分支名称用作maven版本 我知道我可以使用hg branch获取当前mercurial分支名称。使用,应该可以在任何系统(Windo

我目前正在为我的maven项目建立一个mecurial存储库

这个maven项目由几个模块组成。当我创建包含所有已创建JAR的安装zip时,所有模块的版本都相同

到目前为止,我已经使用父pom中的一个属性实现了这一点,模块在构建时使用该属性。到目前为止,一切都很好,我只有一个立场改变时,我想改变的版本

现在我有了ingenius(=怪异)的想法,将mecurial分支名称用作maven版本

我知道我可以使用
hg branch
获取当前mercurial分支名称。使用,应该可以在任何系统(Windows/linux)上读取它。使用它并将其写入属性文件,我应该能够使用

但是,我一直无法读取分支名称并将其写入文件:

<plugin>
    <artifactId>exec-maven-plugin</artifactId>
    <groupId>org.codehaus.mojo</groupId>
    <executions>
        <execution>
            <phase>generate-sources</phase>
            <goals>
                <goal>exec</goal>
            </goals>
            <configuration>
                <executable>hg</executable>
                <arguments>
                    <argument>branch</argument>
                </arguments>
            </configuration>
        </execution>
    </executions>
</plugin>

execmaven插件
org.codehaus.mojo
生成源
执行官
汞
分支
你们中是否有人知道如何解决这个问题,或者有一个不同的解决方案在构建时将mercurial分支名称引入maven pom

致以最良好的祝愿,
Xeno Lube

我不是一个专业人士,但听起来你可以用它将输出写入文件。您可以让Mercurial使用以下模板输出有效的Java属性文件:

hg log --rev . --template 'version={branch}-{node|short}\n'
然后把它装进去。这类事情的一个常见模板是
{latesttag}-{latesttagdistance}-{node | short}

也就是说,我当然希望maven能让您直接将命令输出发送到变量中,然后首先发送到磁盘上的文件——ant当然做到了