强制Maven使用单个快照依赖项的本地副本

时间:2019-02-06 19:13:30

标签: java maven continuous-integration dependency-management snapshot

我的Maven项目有2个快照依赖项。我需要远程存储库中具有可用的依赖项A的最新快照,同时,我的本地〜/ .m2存储库中具有可用的快照依赖项B的版本。

快照副本B也位于远程存储库中,但是我的CI作业需要使用此快照依赖项的本地构建实例。因此,快照上没有时间戳记,因此其文件路径为~/.m2/repository/groupId/artifactId/1.0.0-SNAPSHOT/artifactId-1.0.0-SNAPSHOT.tar.gz

由于需要拆分,因此--no-snapshot-updates和配置settings.xml之类的解决方案无法解决问题。

有什么建议吗?

更新:如果本地生成的快照少于24小时,则默认情况下该方法有效。我不确定在原始实验中配置错误的内容。事实证明,使用快照B的本地版本是因为其文件系统的上次更新时间少于24小时。快照A在本地存储库中不存在,因此可以按预期从远程存储库中获取快照。

3 个答案:

答案 0 :(得分:0)

尝试时间戳,您可以使用1.0.0作为版本。

查看本文: How do I add time-stamp information to Maven artifacts?

答案 1 :(得分:0)

我将通过添加后缀来更改B的版本:当B现在为2.0.0-SNAPSHOT时,使其变为2.0.0-LOCAL-SNAPSHOT。如果您以此版本构建和引用B,则可以确保B的任何远程版本都不会干扰您的构建。

答案 2 :(得分:0)

如果本地生成的快照少于24小时,则默认情况下此方法有效。我不确定在原始实验中配置错误的内容。事实证明,使用快照B的本地版本是因为其文件系统的上次更新时间少于24小时。快照A在本地存储库中不存在,因此可以按预期从远程存储库中获取快照。