java - “mvn链接”依赖项的最佳方式?
问题描述
假设我的机器上有两个项目,ProjectA 和 ProjectB;ProjectB 使用 ProjectA 作为依赖项。
我也分别发布了这两个包。现在我想在本地开发,对 A 进行更改,但测试在 B 中。如何在 ProjectB 中本地“链接”ProjectA,以便在运行 ProjectB 时,它使用本地 ProjectA 而不是发布的包?
解决方案
首先,在引用 maven 依赖项时,可以使用固定版本号 like5.2.0
或SNAPHOT
-version like 5.2.0-SNAPSHOT
,其语义为current in development 或 work in progress。此外,这些版本与存储库中的更新时间戳相关联,以决定哪个SNAPHOT
版本是最新的。
项目一:
- 将根目录中的版本更改
.pom
为SNAPHOT
-version。(在多模块项目中,您可以使用 [1] 代替手动更改每个版本。) - 将您的工件运行
mvn install
到本地 Maven 存储库。
项目B:
SNAPSHOT
在依赖项部分中为项目 A引用新安装的-version。- 运行
mvn compile
,将使用新版本。
请记住,发行版不应包含对快照版本的引用。要自动化此过程(在快照和发布之间来回更改),您可以使用 [2]。
[1] Maven 插件版本
- 用于
mvn versions:set -DnewVersion=your_new_version
更改版本。 - 然后分别使用
mvn versions:commit
或mvn versions:rollback
。
[2] Maven 发布插件
推荐阅读
- go - go - 如何在go golang中的特定内存地址声明一个指针并在那里存储一个值
- javascript - 如何在不使用 DOM 函数的情况下将 Uint8ClampedArray 转换为图像?
- django - Django嵌套if语句给了我一个奇怪的错误
- java - 如何在单个语句中运行多个查询
- ng-bootstrap - 从 ngbDropdownToggle 中删除小箭头
- javascript - 将报价添加到没有报价的 json 文件
- java - 独立罐空手道问题
- python - 无法确定为什么 MNE raw.plot 返回“ValueError:bottom cannot be >= top”
- java - 有没有简单的方法在不使用比较器的情况下对数组进行排序后保留原始索引?
- pandas - 如何将字典的文本文件读取到数据框?