Maven 打包时,依赖配置正确,但是类引入出现错误,一般是快照(Snapshot)依赖拉取策略问题

本文讲述了在Maven项目打包中遇到类缺失依赖的问题,可能原因包括快照依赖未发布到私仓或本地Maven未获取最新依赖。解决方案涉及IDEA项目配置、Mavensettings.xml中设置快照策略以及使用`mvncleaninstall-U`强制更新快照依赖。
摘要由CSDN通过智能技术生成

问题描述
项目打包时,类缺少依赖,操作 pom.xml -> Maven -> Reload project ,还是不生效,但是同事(别人)那里正常。

问题出现的环境

  1. 可能项目是多模块项目,结构例如:
my-project
|-- pom.xml(根项目)
|-- module-1
|   `-- pom.xml
|-- module-2
|   `-- pom.xml
`-- module-3
    `-- pom.xml
  1. 可能继承另一个项目(项目是快照版本),例如:
 <parent>
        <groupId>other.project.groupId</groupId>
        <artifactId>project_artifactId</artifactId>
        <version>1.0-SNAPSHOT</version>
 </parent>
  1. 可能依赖是快照版本,例如:
 <dependency>
     <groupId>other.project.groupId<</groupId>
     <artifactId>project_artifactId</artifactId>
     <version>2.0.0-SNAPSHOT</version>
 </dependency>

问题分析
Maven 查找依赖的顺序是 1.本地依赖 2. 私仓 3. 中央仓库,当类出现引入错误,但是(快照)依赖配置正确,问题可能是 快照依赖没有发布到 私仓, 或者你的本地Maven 没有拉取最新的快照依赖。
在默认情况下,Maven 并不会一直拉取快照依赖

问题解决

  1. IDEA 项目配置

在这里插入图片描述
2. Maven setting.xml 配置快照策略

 <repository>
          <id>snapshots</id>
         <url>your_snapshots_path</url>
          <snapshots>
            <enabled>true</enabled>
            <!-- 配置快照拉取策略 -->
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>fail</checksumPolicy>
          </snapshots>
        </repository>
      <repository>

updatePolicy可以根据自身需求配置:

  • always : 总是检查最新的快照版本。
  • daily : 每天检查一次远程仓库以获取最新的快照版本
  • interval:X : 每隔 X 分钟检查一次远程仓库以获取最新的快照版本。
  • never : 从不检查远程仓库以获取最新的快照版本。
  1. 命令方式, Maven 强制拉取快照(Snapshot)依赖而不依赖本地缓存
mvn clean install -U
  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值