天天看點

Dependency ‘xxx‘ not found問題定位

我在學習springmvc的課程,想自己搭建一個springmvc的項目,使用maven來搭建工程,但是死活拉不下來spring-webmvc的依賴。百度查了很多的資料,也沒有解決問題。折騰了我一下午+一晚上。最後還是自己發現了問題。

Dependency ‘xxx‘ not found問題定位

下載下傳的jar包都是字尾帶着lastUpdated的。

Dependency ‘xxx‘ not found問題定位

而且,我發現我建立的項目,是在電腦本地的maven倉庫上建立spring-webmvc檔案夾來存放下載下傳的jar包,而不是複用原來已有的。很是奇怪,居然可以有同名的檔案夾。

Dependency ‘xxx‘ not found問題定位

後來我在嘗試install項目的時候,看到了報錯的提示:

[ERROR]   The project com.example:springmvc_demo:1.0-SNAPSHOT (D:\file\idea_project\springmvc_demo\pom.xml) has 1 error

[ERROR]     'dependencies.dependency.artifactId' for org.springframework:spring‐webmvc:jar with value 'spring‐webmvc' does not match a valid id pattern. @ line 13, column 25

這個錯誤提示,我猜想可能是artifactId拼寫錯了,我修改了一下artifactId名字,發現idea可以自動補全,然後我用自動補全填寫了spring-webmvc,突然就好了!依賴拉下來了,而且是用的原來的spring-webmvc檔案夾,而不是建立的那個。我把備援的那個spring-webmvc檔案夾删掉,發現也沒問題。

Dependency ‘xxx‘ not found問題定位

而且我也仔細對比過之前的artifactId,我的拼寫是完全正确的!真的是很奇怪的一個問題,我猜想這個是idea的一個bug,我是複制粘貼進來的spring-webmvc依賴标簽,不自己手動拼寫的<dependency>,可能會有差別。複制進來的可能不會觸發去本地倉庫尋找依賴,而是建立的檔案夾來存放依賴。而重複檔案夾,可能會導緻拉不下來依賴。

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.3.RELEASE</version>
        </dependency>
           

總結:pom檔案的dependency标簽,artifactId最好是自己手動拼寫,複制粘貼的可能會有未知的bug,導緻依賴拉不下來。我的idea是2018.3的版本,可能新版本已經修複了這個bug了吧。我就不去驗證了,留給網友們驗證吧,希望文章能幫到大家。