maven依賴總結

1.依賴元素

<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可選,排除傳遞依賴性,默認空測試

2.依賴範圍

maven項目又三種classpath(編譯,測試,運行)優化

scope用來表示與classpath的關係,總共有五種spa

compile:編譯,測試,運行插件

test:測試

provided:編譯,測試

runtime:運行

system:編譯,測試,同provided,但必須指定systemPath,慎用

3.傳遞性依賴

顧名思義,你懂的,可是傳遞的範圍會發生改變,這個由maven自身處理,只要理解下便可

第一列爲第一依賴,第二列爲第二依賴,單元格爲傳遞範圍

  compile test provided runtime
compile compile _ _ runtime
test test _ _ test
provided provided _ provided provided
runtime runtime _ _ runtime

4.依賴調解

傳遞路徑長度取最短原則,傳遞路徑長度相等時,採起最早申明原則

5.可選依賴

儘可能少用,可選依賴不會被傳遞,須要顯式申明

6.排除依賴

發現依賴包裏有些包不穩定,能夠排除依賴,顯式的申明文檔的包

<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>

7.分類依賴

當同一個模塊,所依賴的幾個模塊版本都相同時,能夠使用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>

8.優化依賴

可歸納爲三個命令

mvn dependency:list

表示依賴列表,maven eclipse插件已經實現,有圖形化顯示,在pom.xml的dependencies頁


mvn dependency:tree

表示依賴列表,maven eclipse插件已經實現,有圖形化顯示,在pom.xml的dependency hierarchy頁

mvn dependency:analyze

查找出在編譯和測試中未使用但顯示聲明的依賴

相關文章
相關標籤/搜索