如何解决Maven无法拉取SNAPSHOT依赖问题

 更新时间:2024年10月06日 15:43:04   作者:笔墨桑  
在使用Maven管理项目时,可能会遇到无法拉取SNAPSHOT版本依赖的问题,这通常是因为Maven默认不支持直接拉取SNAPSHOT版本,遇到这样的问题,可以通过在项目的pom.xml文件中添加<repositories>标签,并配置启用SNAPSHOT的仓库地址来解决

背景

自己所在的部门主要是为其他项目组提供基础组件,如果需要使用新特性,其他项目组还会经常引用SNAPSHOT版本的组件进行开发测试。

平时自己做测试的时候,因为手里有源码,所以每次都是先执行 mvn install 在本地安装后,在新建项目引用组件进行测试,所以没有发现什么问题。

这次没有先本地安装,却怎么也拉取不下来,控制台一直报如下错误:

Could not find artifact xxx:jar:1.21.0-SNAPSHOT

Try to run Maven import with -U flag (force update snapshots)

根据提示执行强制拉取也无效,于是研究了下公司内其他工程是怎么配置的,之后成功拉取到了这个组件。

解决办法

Maven默认不支持拉取SNAPSHOT依赖,需要在工程根 pom.xml 中添加 <repositories> 标签,并配置启用SNAPSHOT,

如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>beemo.demo</groupId>
  <artifactId>maven-snapshot</artifactId>
  <version>1.0.0</version>


  <properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  ...

  <repositories>
    <repository>
      <!-- ID必填 -->
      <id>my-snapshots</id>
      <!-- Maven私服SNAPSHAT仓库URL,这里需要替换为实际公司的私服地址 -->
      <url>http://HOST:PORT/repository/maven-snapshots/</url>
      <!-- 设置启用SNAPSHOT -->
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
  </repositories>

  ...

</project>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mac下idea的svn密码记不住的问题及处理方法

    mac下idea的svn密码记不住的问题及处理方法

    这篇文章主要介绍了mac下idea的svn密码记不住的问题及处理方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Java 中的 Consumer 与 Supplier 接口使用场景与示例

    Java 中的 Consumer 与 Supplier 接口使用场景与

    文章介绍了Java 8中函数式接口的核心概念,Consumer与Supplier接口使用场景与示例,重点对比了Consumer(消费数据)与Supplier(供给数据)的区别,感兴趣的朋友跟随小编一起看看吧
    2025-08-08
  • Java并发编程之CountDownLatch原理详解

    Java并发编程之CountDownLatch原理详解

    这篇文章主要介绍了Java并发编程之CountDownLatch原理详解,CountDownLatch类中使用了一个继承自AQS的共享锁Sync对象,构造CountDownLatch对象时会将传入的线程数值设为AQS的state值,需要的朋友可以参考下
    2023-12-12
  • springboot+feign+Hystrix整合(亲测有效)

    springboot+feign+Hystrix整合(亲测有效)

    本文主要介绍了springboot+feign+Hystrix整合,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • Java超详细精讲数据结构之bfs与双端队列

    Java超详细精讲数据结构之bfs与双端队列

    广搜BFS的基本思想是: 首先访问初始点v并将其标志为已经访问。接着通过邻接关系将邻接点入队。然后每访问过一个顶点则出队。按照顺序,访问每一个顶点的所有未被访问过的顶点直到所有的顶点均被访问过。广度优先遍历类似与层次遍历
    2022-07-07
  • Java中常见的日期操作(取值、转换、加减、比较)

    Java中常见的日期操作(取值、转换、加减、比较)

    本文给大家介绍java中常见的日期操作,日期取值、日期转换、日期加减、日期比较,对java日期操作相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • Java开发可离不开的@Mapper注解举例详解

    Java开发可离不开的@Mapper注解举例详解

    @Mapper 是 Mybatis 的注解,和Spring没有关系,这篇文章主要介绍了Java中@Mapper注解的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-05-05
  • Java经典排序算法之插入排序

    Java经典排序算法之插入排序

    这篇文章主要为大家详细介绍了Java经典排序算法之插入排序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • Springboot如何使用@Async实现异步任务

    Springboot如何使用@Async实现异步任务

    这篇文章主要介绍了Springboot如何使用@Async实现异步任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Spring Security注解方式权限控制过程

    Spring Security注解方式权限控制过程

    这篇文章主要介绍了Spring Security注解方式权限控制过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03

最新评论