对于新增依赖到公有仓库的问题
新增内部依赖到公有仓库,因为之前不太熟悉,认为和平时一样,间接在 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>
用到了第二种办法,解决了问题