Java “最好的方法”;mvn链接“;依赖关系?
假设我的机器上有两个项目,ProjectA和ProjectB;ProjectB使用ProjectA作为依赖项Java “最好的方法”;mvn链接“;依赖关系?,java,maven,Java,Maven,假设我的机器上有两个项目,ProjectA和ProjectB;ProjectB使用ProjectA作为依赖项 我还分别发布了这两个包。现在我想在本地开发,对A进行更改,但测试在B中。如何在ProjectB中本地“链接”ProjectA,以便在运行ProjectB时,它使用的是本地ProjectA而不是发布的包?首先,在引用maven依赖项时,您可以使用固定版本号,如5.2.0,或SNAPHOT-版本,如5.2.0-SNAPSHOT,其语义为当前正在开发或正在工作。此外,这些版本与存储库中的更新时
我还分别发布了这两个包。现在我想在本地开发,对A进行更改,但测试在B中。如何在ProjectB中本地“链接”ProjectA,以便在运行ProjectB时,它使用的是本地ProjectA而不是发布的包?首先,在引用maven依赖项时,您可以使用固定版本号,如
5.2.0
,或SNAPHOT
-版本,如5.2.0-SNAPSHOT
,其语义为当前正在开发或正在工作。此外,这些版本与存储库中的更新时间戳相关联,以确定哪个SNAPHOT
版本是最新的
项目A:
- 将根
中的版本更改为.pom
-版本。(在多模块项目中,您可以使用[1]来代替手动更改每个版本。)SNAPHOT
- 运行
将您的工件安装到本地maven存储库mvn install
- 请参考“依赖项”部分中项目A的新安装的快照版本
- 运行
,将使用新版本mvn compile
- 使用
mvn versions:set-DnewVersion=您的新版本来更改版本
- 然后分别使用
或mvn版本:commit
mvn版本:rollback
[2] 不太清楚,但您使用的是多模块Maven项目吗?您可以
mvn在本地存储库中安装项目a的快照版本,然后在项目B中引用该快照版本。@fluffy否,这些是完全独立的项目。我正在寻找类似于npm link
的东西,它可以让您轻松地将本地项目用作您的另一个项目中的依赖项。@Glains如何做到这一点?在项目a的pom.xml
中,将版本设置为x.y.z-SNAPHOT
,然后运行mvn install
,然后,通过更改依赖项中A的版本来引用项目B中的快照版本。发布版本时,请记住始终删除快照依赖项。