假设我的机器上有两个项目,projecta和projectb;projectb使用projecta作为依赖项。我也分别发布了这两个包。现在我想在本地进行开发,对a进行更改,但测试在b中。如何在projectb中本地“链接”projecta,以便在运行projectb时,它使用的是本地projecta而不是发布的包?
mutmk8jj1#
首先,在引用maven依赖项时,可以使用固定的版本号,如 5.2.0 或者 SNAPHOT -版本类似 5.2.0-SNAPSHOT ,其语义为“正在开发中”或“正在工作”。此外,这些版本还与存储库中的更新时间戳相关联,以确定要更新的版本 SNAPHOT 版本是最新的。项目a:更改根目录中的版本 .pom 到 SNAPHOT -版本(在多模块项目中,您可以使用[1],而不是手动更改每个版本。)跑 mvn install 将您的工件保存到本地maven存储库。项目b:参考新安装的 SNAPSHOT -依赖项部分中项目a的版本。跑 mvn compile 将使用新版本。请记住,版本不应包含对snaphot版本的引用。要自动化此过程(在快照和发布之间来回更改),可以使用[2]。[1] 版本maven插件使用 mvn versions:set -DnewVersion=your_new_version 更改版本。然后使用 mvn versions:commit 或者 mvn versions:rollback 分别。[2] maven发布插件
5.2.0
SNAPHOT
5.2.0-SNAPSHOT
.pom
mvn install
SNAPSHOT
mvn compile
mvn versions:set -DnewVersion=your_new_version
mvn versions:commit
mvn versions:rollback
1条答案
按热度按时间mutmk8jj1#
首先,在引用maven依赖项时,可以使用固定的版本号,如
5.2.0
或者SNAPHOT
-版本类似5.2.0-SNAPSHOT
,其语义为“正在开发中”或“正在工作”。此外,这些版本还与存储库中的更新时间戳相关联,以确定要更新的版本SNAPHOT
版本是最新的。项目a:
更改根目录中的版本
.pom
到SNAPHOT
-版本(在多模块项目中,您可以使用[1],而不是手动更改每个版本。)跑
mvn install
将您的工件保存到本地maven存储库。项目b:
参考新安装的
SNAPSHOT
-依赖项部分中项目a的版本。跑
mvn compile
将使用新版本。请记住,版本不应包含对snaphot版本的引用。要自动化此过程(在快照和发布之间来回更改),可以使用[2]。
[1] 版本maven插件
使用
mvn versions:set -DnewVersion=your_new_version
更改版本。然后使用
mvn versions:commit
或者mvn versions:rollback
分别。[2] maven发布插件