关于新增依赖到私有仓库的问题
新增外部依赖到私有仓库,由于之前不太熟悉,以为和平常一样,直接在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>
用到了第二种方法,解决了问题
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。