在Maven目标中传递属性值无效。pom.xml变量不反映在maven存储库中的工件pom.xml中
我试图在运行时从maven中的命令行获取依赖项版本,但它并没有反映到maven存储库中的工件pom中 我的项目pom如下:-在Maven目标中传递属性值无效。pom.xml变量不反映在maven存储库中的工件pom.xml中,maven,Maven,我试图在运行时从maven中的命令行获取依赖项版本,但它并没有反映到maven存储库中的工件pom中 我的项目pom如下:- <parent> <groupId>com.company.project</groupId> <artifactId>parentProject</artifactId> <version>5.6.0.14</version> </parent>
<parent>
<groupId>com.company.project</groupId>
<artifactId>parentProject</artifactId>
<version>5.6.0.14</version>
</parent>
<properties>
<my.version>${my.version}</my.version>
</properties>
<groupId>com.company.project</groupId>
<artifactId>childProject</artifactId>
<dependencies>
<dependency>
<artifactId>someArtifact_one</artifactId>
<groupId>com.company.project</groupId>
<version>${my.version}</version>
</dependency>
<dependency>
<artifactId>someArtifact_one</artifactId>
<groupId>com.company.project</groupId>
<version>${my.version}</version>
</dependency>
</dependencies>
com.company.project
父项目
5.6.0.14
${my.version}
com.company.project
儿童项目
一些人造物品
com.company.project
${my.version}
一些人造物品
com.company.project
${my.version}
我的命令类似于-mvn install-Dmy.version=5.6.0.12,项目已成功构建并上载到maven存储库,但当我在maven存储库中验证工件pom.xml时,它与之相同
<dependency>
<artifactId>someArtifact_one</artifactId>
<groupId>com.company.project</groupId>
<version>${my.version}</version>
</dependency>
一些人造物品
com.company.project
${my.version}
我认为它应该像下面的maven存储库一样
<dependency>
<artifactId>someArtifact_one</artifactId>
<groupId>com.company.project</groupId>
<version>5.6.0.12</version>
</dependency>
一些人造物品
com.company.project
5.6.0.12
我如何解决这个问题,或者如果有人对此问题有其他解决方案,请提出建议。这主要是因为,您在goal
-Dmy.version=5.6.0.12
中使用pom.xml中的properties标记过度写入了传递的值。要修复它,您可以完全删除此属性标记(或按如下方式设置)
<properties>
<my.version>5.6.0.12</my.version>
</properties>
5.6.0.12
另一种方法是在CI环境中将参数传递为:-Darguments=“-Dparam1=val1-Dparam2=val2”
如本文所述:${my.version}
覆盖您在目标中传递的值。检查我关于fixhi Thanga的回答谢谢你的回答,我已经尝试过删除属性标记,但它不起作用,你的建议是在版本标记中给出硬编码值,我不想这样做,因为我有10个模块有这个版本(我从命令行传递的相同版本,还有一些模块有相互依赖性),对于任何人来说,在所有10个pom中更改一个版本都是一件乏味的事情。删除属性标签意味着删除内部标签。我的意思是完全删除${my.version}
并检查。如果您在父pom中也有此属性,那么也必须删除它com.company.project.parentProject
我也这么做了!