在執行maven clean package時遇到如下錯誤提示:
Could not resolve dependencies for project org.springframework.boot:XXXX:jar:2.0-SNAPSHOT: Failed to collect dependencies at com.XXXX:XXXX:jar:2.0-SNAPSHOT: Failed to read artifact descriptor for com.XXXX:XXXX:jar:2.0-SNAPSHOT: Failure to find com.XXXX:XXXX:pom:2.0-SNAPSHOT in http://XXXX:XXXX/repository/maven-snapshots/ was cached in the local repository, resolution will not be reattempted until the update interval of maven-snapshots 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文件,或者將本地Maven倉庫中已下載的相關依賴Jar刪掉,然後再次運行mvn 命令
2.強制更新依賴庫
修改~/.m2/settings.xml 或/opt/maven/conf/settings.xml文件,在其中的倉庫中添加 <updatePolicy>always</updatePolicy>來強制每次都更新依賴庫。
<repositories>
<repository>
<id>yourid</id>
<url>http://yourRepository</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>