天天看點

maven--強制使用遠端倉庫的新依賴

簡介

        本文介紹如何更新依賴(使用遠端倉庫的依賴)。

問題描述

        項目A依賴項目B,此時項目A可以正常建構。别人修改項目B,并将B項目Deploy到私服,我在本地用IDEA建構項目A,建構失敗。

原因分析

        編譯項目A時,先在本地maven倉庫中尋找項目B,如果找到就用本地maven倉庫的依賴,如果本地maven倉庫沒有找到,才會去遠端倉庫拉取。是以建構A時,老的jar沒有新版本中新增的内容,導緻編譯出錯。

解決方案

有效的方案

方案1:删除本地項目B的依賴

方法

用IDEA找到依賴在maven倉庫中的位置,然後手動删除那個檔案夾。

詳解

在IDEA裡操作:File=> Project Structure=> Project Settings=> Libraries

maven--強制使用遠端倉庫的新依賴
maven--強制使用遠端倉庫的新依賴

方案2:将updatePolicy改為always

更改settings.xml,将updatePolicy改為always。

<profile>
    <id>nexus</id>
    <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>
</profile>      

方案3:更新版本号

方法

将項目B的版本号更新,項目A也修改為新版本号。

詳解

新的版本号會在遠端倉庫生成新的檔案,本地倉庫會重新下載下傳。

無效的方案

方案1:指令行更新依賴

mvn clean install -U      
  • -U,–update-snapshots
  • Forces a check for missing releases and updated snapshots on remote repositories

方案2:指令行删除本地依賴

mvn dependency:purge-local-repository -DmanualInclude=groupId:artifactId