我有一个多模块Maven项目,子模块从父项目属性获取版本号,并且构件创建得很好。
我的问题是${global.version}
在nexus repo的子模块的pom.xml中有变量。commons-GOLD.jar
通过从父项目获取版本号(GOLD),成功地在nexus中进行。但是,它是在nexus点中的pom.xml文件${global.version}
而不是GOLD,当我将commons-gold添加为依赖项mvn时,尝试拉cenatral/myProj.parent/$%7Bglobal.version%7D/myProj.parent-$%7Bglobal.version%7D.pom
MyProject父项目pom.xml
<version>${global.version}</version>
<packaging>pom</packaging>
<modules>
<module>commons</module>
<module>module2</module>
and so on
<properties>
<!-- Unique entry point for version number management -->
<global.version>GOLD</global.version>
</properties>
公用模块pom.xml
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.hmg</groupId>
<artifactId>myproj.parent</artifactId>
<version>${global.version}</version>
</parent>
我想将上面的内容${global.version}
替换为来自父pom.xml的属性。即使有效的pom具有正确的值,但nexus具有原始的pom,这会导致在解决依赖项时maven命令失败。
试图覆盖它,但这没有用。
mvn '-Dglobal.version=GOLD' dependency:tree
还是有一种方法可以忽略依赖关系的父pom?
那里有金制品。
POM.xml包含变量,这将导致依赖关系解决问题。
如果我将Commons用作版本1.0.0或GOLD的另一个项目中的依赖项,则无论其版本如何,由于其pom的关系,它都会寻求$ {version}。
XDrive:>无法在com.xyz:common:jar:1.0.0上收集依赖项:无法读取com.xyz:common:jar:1.0.0的工件描述符:无法找到com.xyz:myProj.parent:pom :$ {revision}(位于http://10.80.100.155:8085/repository/myProj-group/中)已缓存在本地存储库中,只有在Central的更新间隔过去或强制更新后,才会重新尝试解析-> [帮助1]
这里的问题很简单,就是flatten-maven-plugin的使用不正确。
此外,您只能使用与该设置相关的以下属性:
除此之外,您可以使用versions-maven-plugin,而无需定义任何属性。除此之外,您还可以使用发布插件来增加版本号,通常不需要定义属性(仅在特定情况下)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句