首页 > 解决方案 > “mvn链接”依赖项的最佳方式?

问题描述

假设我的机器上有两个项目,ProjectA 和 ProjectB;ProjectB 使用 ProjectA 作为依赖项。

我也分别发布了这两个包。现在我想在本地开发,对 A 进行更改,但测试在 B 中。如何在 ProjectB 中本地“链接”ProjectA,以便在运行 ProjectB 时,它使用本地 ProjectA 而不是发布的包?

标签: javamaven

解决方案


首先,在引用 maven 依赖项时,可以使用固定版本号 like5.2.0SNAPHOT-version like 5.2.0-SNAPSHOT,其语义为current in development 或 work in progress。此外,这些版本与存储库中的更新时间戳相关联,以决定哪个SNAPHOT版本是最新的。

项目一:

  • 将根目录中的版本更改.pomSNAPHOT-version。(在多模块项目中,您可以使用 [1] 代替手动更改每个版本。)
  • 将您的工件运行mvn install到本地 Maven 存储库。

项目B:

  • SNAPSHOT在依赖项部分中为项目 A引用新安装的-version。
  • 运行mvn compile,将使用新版本。

请记住,发行版不应包含对快照版本的引用。要自动化此过程(在快照和发布之间来回更改),您可以使用 [2]。

[1] Maven 插件版本

  • 用于mvn versions:set -DnewVersion=your_new_version更改版本。
  • 然后分别使用mvn versions:commitmvn versions:rollback

[2] Maven 发布插件


推荐阅读