1、依賴包查詢web
1.因此依賴經過GAV座標來搜索(GAV:groupid,artifactId,version)
2.有一些網上的倉庫提供了座標的查詢
3.經過<dependencies><dependency/></dependencies>來設置依賴
4.maven搜索依賴的方式,首先會在本地倉庫查詢,若是本地倉庫沒有該包,就會去中央倉庫查詢
2、依賴的範圍
依賴的範圍使用scope標籤
1.compile,缺省值,指編譯和打包的時候都會把這個依賴包含進去
2.test,指測試範圍時有效,打包的時候不會把這個依賴包含進去
3.provided,指編譯和測試時有效,打包的時候不會把這個依賴包含進去,如servlet-api,由於在servlet-api在tomcat等web服務器中已經存在,若是打包會衝突。
4.runtime,指運行的時候有效,打包的時候不會把這個依賴包含進去
5.system,指編譯和測試時有效,打包的時候不會把這個依賴包含進去,須要顯式提供包含依賴的jar,Maven不會在Repository中查找它
3、依賴的傳遞
1.依賴會被傳遞
A依賴C,B依賴A ==> B依賴C(這種依賴是基於compile這個範圍進行傳遞)
2.依賴衝突的解決
1)如何B依賴A1.0,C依賴A1.2 ==> D依賴B和C,對於傳遞的A依賴,在pom文件中,先寫B和C中的哪一個,D就對應依賴對應的A
2)若是B依賴A1.0,C依賴A1.2,D依賴C ==> F依賴B和D,對於傳遞的A依賴,若是路徑長度不一致,怎依賴於路徑短的,則F依賴於B的A1.0
3.若是但願精確的控制依賴包,可使用依賴的排除功能進行控制
4、聚合和繼承
1.如何咱們的項目包含多個模塊咱們一個一個編譯,會太麻煩,咱們能夠建一個聚合項目,經過modules來統一操做
2.繼承能夠複用父類的pom,能夠爲咱們提升pom複用
子模塊能夠經過parent標籤來導入要繼承的pom
依賴繼承採用dependencyManagement用來統一管理,在子模塊中須要那個依賴,只須要寫groupId和artifactId就能夠,採用依賴管理既能夠有效的控制依賴,有能在必定程度上避免依賴衝突。