<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页
查找出在编译和测试中未使用但显示声明的依赖