java - 如何替换 Maven 子模块 pom.xml 文件中的版本号?
问题描述
我有一个多模块 maven 项目,子模块从父项目属性获取版本号,并且正在创建工件。
我的问题是${global.version}
在 nexus repo 的子模块的 pom.xml 中有变量。
commons-GOLD.jar
通过从父项目获取版本号 (GOLD) 在 nexus 中成功进行。但是,它是 nexus 点${global.version}
而不是 GOLD 中的 pom.xml 文件,当我将 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 包含变量,这会导致依赖解析问题。
如果我在另一个版本为 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/被缓存在本地仓库,直到中央的更新间隔已经过去或强制更新才会重新尝试解析 -> [帮助1]
解决方案
推荐阅读
- docker - 使用 cmake 在 Docker 中构建 Iroha
- image - Google Dialogflow - 在 CARD 响应中添加未公开到公共 URL 的图像,无法在环聊中看到图像
- batch-file - 如何使用批处理循环在所有子目录中创建文件
- google-cloud-platform - 在 GCP 中暂停和恢复虚拟机
- matlab - 如何在 Matlab 中生成 COM-Poisson 分布的随机数?
- ruby - 默认情况下冻结数组和哈希?
- swift - 让包含与多个单词一起工作
- sql-server - TSQL 计算列中的出现次数
- sql - SQL - 来自 JOIN 的最小值
- python - 树莓派找不到模块“ezsheets”