Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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 从目录名获取版本_Maven - Fatal编程技术网

Maven 从目录名获取版本

Maven 从目录名获取版本,maven,Maven,我有很多项目。它们必须具有相同的版本=分支目录名(例如“7.15.0”) 为了实现这一点,我使用以下代码创建了一个父pom: <version>${branch}</version> <properties> <branch>${project.file.parentFile.parentFile.parentFile.name}</branch> </properties> 如果我在分支中设置常量-日志包含版本。

我有很多项目。它们必须具有相同的版本=分支目录名(例如“7.15.0”)

为了实现这一点,我使用以下代码创建了一个父pom:

<version>${branch}</version>
<properties>
    <branch>${project.file.parentFile.parentFile.parentFile.name}</branch>
</properties>

如果我在分支中设置常量-日志包含版本。请告诉我,如何在我的父pom中仅解析一次属性“分支”?所以,如果我在子项目中使用${branch},它将解析为常量,这已经在父pom中计算过了。或者,在项目的版本中,有另一种方法可以使用分支目录名

我认为,就目前(3.1+)的maven而言,您试图实现的目标是无效的。现在,
version
标记应该用常量填充,尽管不久前还可以使用表达式,如中所述,请参阅@JanPeta的最后一条注释。顺便说一句,Frederic Close的解决方案不再有效(对于我系统中安装的maven-3.1.1)


或者,您可以更改项目中生成的工件的版本,我有一个有效的解决方案(我使用
git descripe…
output,而不是从目录名获取版本),但它确实,真的很难看,现在我觉得用这种方法解决所有问题不值得花时间。

谢谢你的回答!我现在使用mvn版本:set-DnewVersion=1.2.3。
<parent>
    <groupId>parentPomGroupId</groupId>
    <artifactId>parentPomArtifactId</artifactId>
    <version>${branch}</version>
</parent>
<properties>
    <branch>${project.file.parentFile.parentFile.name}</branch>
</properties>
[INFO] Building appcore-utils ${project.file.parentFile.parentFile.name}