從網上找到一份Maven3學習資料,是一份學習筆記,很不錯,分享一下:http://download.csdn.net/detail/jolingogo/5314305
1.依賴的配置
先來看一個pom.xml
-
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-
<modelVersion>4.0.0</modelVersion>
-
<groupId>com.deppon.demo</groupId>
-
<artifactId>test01</artifactId>
-
<packaging>war</packaging>
-
<version>0.0.1-SNAPSHOT</version>
-
<name>test01 Maven Webapp</name>
-
<url>http://maven.apache.org</url>
-
-
-
<properties>
-
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-
</properties>
-
-
-
<dependencies>
-
-
<dependency>
-
<groupId>junit</groupId>
-
<artifactId>junit</artifactId>
-
<version>3.8.1</version>
-
<scope>test</scope>
-
</dependency>
-
-
-
<dependency>
-
<groupId>javax.servlet</groupId>
-
<artifactId>servlet-api</artifactId>
-
<version>2.5</version>
-
<scope>provided</scope>
-
</dependency>
-
-
</dependencies>
-
-
<build>
-
<finalName>test01</finalName>
-
</build>
-
-
</project>
根元素project下的dependencies可以包含一個或者多個dependency元素,以聲明一個或者多個項目依賴
每個依賴包含的元素有:
groupId,artifactId,version:依賴的基本座標
type:依賴的類型。大部分情況下,該元素不必聲明,默認是jar
scope:依賴的範圍
optional:標記依賴是否可選
exclusions:用來排除傳遞性依賴
2.scope (依賴範圍)
在Maven的世界中,有很多種classpath,編譯classpath,測試classpath,運行classpath
依賴範圍就是用來控制依賴與這三種classpath的關係
compile:編譯依賴範圍。如果沒有指定,則默認使用該依賴範圍。使用此範圍的依賴,在編譯,測試,運行着三種classpath都有效。
test:測試依賴範圍。使用此範圍的依賴,只對測試classpath有效,即只有在測試的代碼中才可用。典型例子就是Junit
provided:已提供依賴範圍。使用此範圍的依賴對於編譯和測試都有效,但在運行時無效。典型例子就是servlet-api
runtime:運行時依賴範圍。使用此範圍的依賴對於測試和運行classpath有效,但在編譯主代碼是無效。典型例子就是JDBC驅動實現
system:系統依賴範圍。對於編譯和測試有效,但在運行時無效。使用system範圍時,必須通過systemPath元素顯示的指定依賴文件的路徑(慎用)
import:導入依賴範圍