study06:关于maven仓库的问题 was cached in the local repository,
Posted Ahnappi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了study06:关于maven仓库的问题 was cached in the local repository,相关的知识,希望对你有一定的参考价值。
关于新增依赖到私有仓库的问题
新增外部依赖到私有仓库,由于之前不太熟悉,以为和平常一样,直接在pom文件配置<repositories> 就可以,初次上传出错,后来被告知需要将依赖放到私有仓库才可以,遂将依赖放入私有仓库,但是在重新运行代码时依旧报错,如下
[ERROR] Failed to execute goal on project ime-common: Could not resolve dependencies for project com.ime:ime-common:jar:0.0.1-SNAPSHOT: The following artifacts could not be resolved: com.youzan.cloud:open-sdk-core:jar:1.0.7-RELEASE, com.youzan.cloud:open-sdk-gen:jar:1.0.22.80056202107020904-RELEASE: Failure to find com.youzan.cloud:open-sdk-core:jar:1.0.7-RELEASE in https://nexus.cnjiang.com/repository/maven-public/ was cached in the local repository, resolution will not be reattempted until the update interval of cnjiang-nexus has elapsed or updates are forced -> [Help 1]
后来发现,Maven默认会使用本地缓存的库来编译工程,对于上次下载失败的库,maven会在~/.m2/repository/<group>/<artifact>/<version>/目录下创建xxx.lastUpdated文件,一旦这个文件存在,那么在直到下一次nexus更新之前都不会更新这个依赖库。
解决方法
1.删除v~/.m2/repository/<group>/<artifact>/<version>/目录下的*.lastUpdated文件,然后再次运行mvn compile编译工程。,但是没有权限。
2.修改~/.m2/settings.xml 或/opt/maven/conf/settings.xml文件,将其中的仓库添加 <updatePolicy>always</updatePolicy>来强制每次都更新依赖库
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
用到了第二种方法,解决了问题
以上是关于study06:关于maven仓库的问题 was cached in the local repository,的主要内容,如果未能解决你的问题,请参考以下文章
Android Gradle 插件将自定义 Gradle 插件上传到自建 Maven 仓库 ⑤ ( 使用 Sonatype Nexus 搭建 Maven 仓库 )
关于使用eclipse maven UpdateProject时报错,无法更新本地仓库的问题解决方案