摘要: 在討論這個問題前,先簡單的介紹一下雙重解析器的工作原理:顧名思義,雙重解析是雙重的:它由一個ivyResolver和一個 artifactResolver組成,其中ivyResolver負(fù)責(zé)解析ivy的模塊描述符,而artifactResolver則用于解析制品。換言之,ivyResolver用來指明需要什么,而artifactResolver則負(fù)責(zé)獲取具體的制品文件。
第一次在學(xué)習(xí)ivy的過程中看到ivy中的雙重解析器,就感覺設(shè)計非常的不錯,可以比較好的解決這方面的問題。只要維護(hù)好ivyResolver中的依賴,則整個系統(tǒng)中的依賴都被限制在這個范圍中。比如如果有人想用spring2.5.6之外的版本,哼哼,ivyResolver解析器會不工作的......
但是,在實(shí)際的使用過程中發(fā)現(xiàn),雙重解析器的工作模式有點(diǎn)問題:如果目標(biāo)依賴在ivyResolver中可以找到則情況正常,但是如果目標(biāo)依賴在 ivyResolver中沒有定義,ivy居然會在artifactResolver的繼續(xù)查找!然后報告說依賴解析成功已下載云云,而不是我
閱讀全文