<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${springframework.version}</version> <type>jar</type> <scope>compile</scope> </dependency>
groupId,必選,實際隸屬項目html
artifactId,必選,其中的模塊java
version必選,版本號spring
type可選,依賴類型,默認jareclipse
scope可選,依賴範圍,默認compilemaven
optional可選,標記依賴是否可選,默認falseide
exclusion可選,排除傳遞依賴性,默認空測試
maven項目又三種classpath(編譯,測試,運行)優化
scope用來表示與classpath的關係,總共有五種spa
compile:編譯,測試,運行插件
test:測試
provided:編譯,測試
runtime:運行
system:編譯,測試,同provided,但必須指定systemPath,慎用
顧名思義,你懂的,可是傳遞的範圍會發生改變,這個由maven自身處理,只要理解下便可
第一列爲第一依賴,第二列爲第二依賴,單元格爲傳遞範圍
compile | test | provided | runtime | |
compile | compile | _ | _ | runtime |
test | test | _ | _ | test |
provided | provided | _ | provided | provided |
runtime | runtime | _ | _ | runtime |
傳遞路徑長度取最短原則,傳遞路徑長度相等時,採起最早申明原則
儘可能少用,可選依賴不會被傳遞,須要顯式申明
發現依賴包裏有些包不穩定,能夠排除依賴,顯式的申明文檔的包
<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.1</version> <exclusions> <exclusion> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1</version> </dependency>
當同一個模塊,所依賴的幾個模塊版本都相同時,能夠使用maven裏的屬性作分類依賴,依賴版本升級時改一處便可
<properties> <springframework.version>2.5.6</springframework.version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${springframework.version}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${springframework.version}</version> <type>pom</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${springframework.version}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${springframework.version}</version> <type>jar</type> <scope>compile</scope> </dependency> </dependencies>
可歸納爲三個命令
表示依賴列表,maven eclipse插件已經實現,有圖形化顯示,在pom.xml的dependencies頁
表示依賴列表,maven eclipse插件已經實現,有圖形化顯示,在pom.xml的dependency hierarchy頁
查找出在編譯和測試中未使用但顯示聲明的依賴