resolution will not be reattempted until the update interval of XXX has elapsed or updates are force

环境

Java:1.8
maven:3.6.1

前言

我只是在pom.xml文件中,将version的数字改了下,结果出问题了。
包总是下不下来。所以idea的引用也没有更新。

其实这是一个很简单的错误,奈何我以前的工作都是手动导包。导致我maven的能力偏弱。

错误消息

[ERROR] Failed to execute goal on project model: 
Could not resolve dependencies for project com.xingren.clinic:model:jar:1.0.0-SNAPSHOT: Failure to find com.xingren.service:medevac-client:jar:1.2.33-SNAPSHOT in http://nexus.aihaisi.com/repository/public/ was cached in the local repository, 
resolution will not be reattempted until the update interval of xr-public has elapsed or updates are forced -> [Help 1]

主要错误消息,如题:
就是resolution will not be reattempted until the update interval of XXX has elapsed or updates are force

意思就是:

在 XXX的更新间隔过去或强制更新之前,不会重新尝试解析。

如果你去本地的maven仓库,你会发现,其只有lastUpdate结尾的文件,没有jar包。

这个时候,你无论怎么点击IDEA中的Reimports All Maven Projects都是没有用的。原因上面也说了,要么等更新时间过去,要么强制更新。
maven的默认更新时间为day,即一天更新一次。

所以我们一般都是采用强制更新的方式。

解决办法

命令行的方式

mvn clean install -U

修改settings.xml

添加<updatePolicy>always</updatePolicy>

<repositories>
   <repository>
     <id>xr-snapshots</id>
 	  <url>http://nexus.alibaba.com/repository/snapshots/</url>
     <snapshots>
       <enabled>true</enabled>
       <!-- 注意 -- >
       <updatePolicy>always</updatePolicy>
     </snapshots>
     <releases>
       <enabled>false</enabled>
       <!-- 注意 -- >
       <updatePolicy>always</updatePolicy>
     </releases>
   </repository>
 </repositories>

<pluginRepositories>
   <pluginRepository>
     <id>xr-plugins</id>
     <name>xingren plugins</name>
     <url>http://nexus.alibaba.com/repository/public/</url>
     <releases>
     	<enabled>true</enabled>
     	<!-- 注意 -- >
     	<updatePolicy>always</updatePolicy>
     </releases>
      <snapshots>
      	<enabled>true</enabled>
      	<!-- 注意 -- >
      	<updatePolicy>always</updatePolicy>
      </snapshots>
   </pluginRepository>
</pluginRepositories>

我采用的是使用命令行。

总结

在确定远程仓库jar包存在,配置也没有错的情况下,
使用强制更新。

参考地址:
https://www.cnblogs.com/huojiao2006/articles/5195965.html
https://stackoverflow.com/questions/4701532/force-maven-update

### 解决 Maven 仓库更新间隔问题并强制更新依赖 当遇到本地缓存错误或需要立即获取最新版本的依赖时,可以采取措施绕过默认的更新时间间隔设置。对于Maven而言,可以通过特定参数来实现这一点。 在命令行调用Maven构建工具时加入`-U`选项能够指示Maven忽略当前定义的时间窗口,并尝试重新解析所有的快照和发布版依赖关系[^2]。这相当于告诉Maven:“无论上次成功同步是什么时候发生的,请现在就去检查远程仓库是否有新的可用资源”。 具体来说,在执行任何常规的目标之前加上这个标志位即可: ```bash mvn clean install -U ``` 上述指令会清理项目目录下的编译产物(`clean`),接着安装打包好的文件到本地仓库(`install`)的同时强迫刷新外部依赖项的状态。 如果是在持续集成环境中运行(如Jenkins),则可以在相应的构建脚本里附加同样的参数以确保每次作业都能拉取最新的依赖信息。例如给定的任务配置可能是这样的形式: ```bash mvn clean package dependency:copy-dependencies -Dmaven.test.skip=true -Pflink-engine -U ``` 这样做不仅解决了由于网络波动等原因造成的临时性下载失败问题,也使得团队成员之间更容易保持一致的工作环境,因为每个人都可以通过简单的方式获得相同的类库版本。 另外值得注意的是,有时候即使启用了强制定期扫描功能仍然无法解决问题,则可能是因为存在拼写错误或其他语法上的失误导致依赖声明本身不正确[^4]。因此建议仔细核对项目的`pom.xml`文件内的各项条目是否准确无误。 最后提醒一点,虽然频繁地触发全面更新有助于及时发现潜在的变化,但这也会增加不必要的网络流量消耗以及延长整体处理周期。所以在日常开发过程中应当权衡利弊合理运用此特性。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山鬼谣me

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值