我有一个多模块maven项目,子模块从父项目属性获取版本号,并且工件被很好地创建。
我的问题是 ${global.version}
nexus repo中子模块pom.xml中的变量。 commons-GOLD.jar
通过从父项目获取版本号(gold),成功地在nexus中执行。但是,它是nexuspoint中的pom.xml文件 ${global.version}
而不是黄金,当我加入共同点黄金作为依赖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来解析依赖关系?
金器在那里。
xml包含变量,这会导致依赖项解析问题。
如果我在另一个版本为1.0.0或gold的项目中使用commons作为依赖项,不管它为${version}寻找什么版本,因为它在nexus中是pom。
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]
2条答案
按热度按时间j1dl9f461#
这里的问题很简单,就是flattemaven插件的使用没有正确完成。
此外,您只能使用与此设置相关的以下属性:
${修订版}
${sha1}
${changelist}
除此之外,您可以使用版本maven插件,而无需定义任何属性。除此之外,您可以使用release插件来增加版本号,并且通常不需要定义属性(仅在特定情况下)
ldxq2e6h2#
我猜你想要这个插件和用法,例如:
这将更新所有模块中的所有版本。