在修改项目的版本号之后,如pom.xml中<version>1.2.0-SNAPSHOT</version>替换为<version>1.0.0-RELEASE</version>后,执行打包报错如下:
·················resolution will not be reattempted until the update interval of nexus has elapsed or updates are forced -> [Help 1]
项目jar包是放在nexus上的,这是由于私服的更新策略导致的,nexus上的依赖库在更新库版本号打包时并没有更新,导致项目打包找不到依赖。
解决方法:
方法一: 修改nexus的依赖库更新策略,添加 <updatePolicy>always</updatePolicy>
<profile> <id>zang-nexus</id> <repositories> <repository> <id>zang-nexus</id> <url>http://10.253.40.2XX:6XXX/nexus/content/groups/public</url> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>zang-nexus</id> <url>http://10.253.40.2XX:6XXX/nexus/content/groups/public</url> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </pluginRepository> </pluginRepositories> </profile>
方法二:删除未下载成功的文件,重新编译【未测】
maven默认会使用本地缓存的库来编译工程,对于上次下载失败的库,maven会在Repository/<group>/<artifact>/<version>/目录下创建xxx.lastUpdated文件,一旦这个文件存在,那么在直到下一次nexus更新之前都不会更新这个依赖库,所以可以根据报错信息,删除Repository/<group>/<artifact>/<version>/目录下的*.lastUpdated文件,然后再次运行mvn compile编译工程。
方法三:清除IDEA的缓存,删掉本地仓库jar重新编译【有时管用】