强制 Maven 使用单一快照依赖的本地副本
Force Maven to use local copy of single snapshot dependency
我的 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,因此按预期从远程仓库中获取。
试试timestamp,版本可以用1.0.0
查看这篇文章:
How do I add time-stamp information to Maven artifacts?
我会通过添加后缀来更改 B 的版本:当 B 现在是 2.0.0-SNAPSHOT
时,将其设为 2.0.0-LOCAL-SNAPSHOT
。如果您通过此版本构建和引用 B,则可以确保 B 的任何远程版本都不会干扰您的构建。
如果本地生成的快照不到 24 小时,则默认情况下会起作用。我不确定我在最初的实验中配置错误。事实证明,使用了快照 B 的本地版本,因为它的文件系统上次更新时间不到 24 小时。本地仓库中不存在快照 A,因此按预期从远程仓库中获取。
我的 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,因此按预期从远程仓库中获取。
试试timestamp,版本可以用1.0.0
查看这篇文章: How do I add time-stamp information to Maven artifacts?
我会通过添加后缀来更改 B 的版本:当 B 现在是 2.0.0-SNAPSHOT
时,将其设为 2.0.0-LOCAL-SNAPSHOT
。如果您通过此版本构建和引用 B,则可以确保 B 的任何远程版本都不会干扰您的构建。
如果本地生成的快照不到 24 小时,则默认情况下会起作用。我不确定我在最初的实验中配置错误。事实证明,使用了快照 B 的本地版本,因为它的文件系统上次更新时间不到 24 小时。本地仓库中不存在快照 A,因此按预期从远程仓库中获取。