解決maven構建時報錯:was cached in the local repository...

今天使用命令mvn compile編譯maven項目時提示錯誤信息,錯誤信息以下: html

[ERROR] Failed to execute goal on project <project_name>: Could not resolve dependencies
for project com.xxx.xxx:<project_name>:jar:1.0.7: Failure to find com.xxx.xxx:obj-test-client:jar:1.1.1
in http://maven-nexus.xxx.com/repository/maven-public/ was cached in the local repository, resolution 
will not be reattempted until the update interval of fintech has elapsed or updates are forced -> [Help 1]

問題緣由 :
Maven默認會使用本地緩存的庫來編譯工程,對於上次下載失敗的庫,maven會在~/.m2/repository/<group>/<artifact>/<version>/目錄下建立xxx.lastUpdated文件,一旦這個文件存在,那麼在直到下一次nexus更新以前都不會更新這個依賴庫。

緩存

解決辦法: maven

方法一:ide

刪除v~/.m2/repository/<group>/<artifact>/<version>/目錄下的*.lastUpdated文件,而後再次運行mvn compile編譯工程。url

方法二:spa

修改~/.m2/settings.xml 或/opt/maven/conf/settings.xml文件,將其中的倉庫添加 <updatePolicy>always</updatePolicy>來強制每次都更新依賴庫。code

<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>



Jenkins構建時報錯:orm

經過jenkins編譯時報此錯,個人maven安裝目錄/opt/maven ,解決方法以下:xml

發現obj-test-client-1.1.1.jar下載到本地時失敗,從提示可知是本地倉庫的緩存(cached)形成,因而我刪除目錄/opt/maven/repo/<group>/obj-test-client/1.1.1後Jenkins從新構建(或在項目目錄 mvn 從新編譯)便可編譯成功! htm

注意你要肯定遠程倉庫中存在此jar(obj-test-client-1.1.1.jar)包 

相關文章
相關標籤/搜索