maven依赖总结

原创 2013年01月11日 15:13:35

1.依赖元素

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${springframework.version}</version>
			<type>jar</type>
			<scope>compile</scope>
		</dependency>

groupId,必选,实际隶属项目

artifactId,必选,其中的模块

version必选,版本号

type可选,依赖类型,默认jar

scope可选,依赖范围,默认compile

optional可选,标记依赖是否可选,默认false

exclusion可选,排除传递依赖性,默认空

2.依赖范围

maven项目又三种classpath(编译,测试,运行)

scope用来表示与classpath的关系,总共有五种

compile:编译,测试,运行

test:测试

provided:编译,测试

runtime:运行

system:编译,测试,同provided,但必须指定systemPath,慎用

3.传递性依赖

顾名思义,你懂的,但是传递的范围会发生改变,这个由maven自身处理,只要理解下即可

第一列为第一依赖,第二列为第二依赖,单元格为传递范围

 compiletestprovidedruntime
compilecompile__runtime
testtest__test
providedprovided_providedprovided
runtimeruntime__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

查找出在编译和测试中未使用但显示声明的依赖

版权声明:本文为博主原创文章,未经博主允许不得转载。

关于maven依赖范围的个人理解

pom文件中有个元素是scope  表示构建的依赖范围 这本书原文片段是如下:         首先需要知道,Maven在编译项目主代码的时候需要使用一套classpath.  在执行测试的时候会...
  • hwdd1992
  • hwdd1992
  • 2017年01月07日 19:06
  • 1008

maven依赖的版本管理

使用变量进行管理 定义一个版本号的变量 4.3.7.REALEASE 所有spring的jar版本都使用变量来定义版本: org.springframework spring...
  • hj7jay
  • hj7jay
  • 2017年03月08日 09:35
  • 608

maven详解之坐标与依赖

maven坐标和依赖详解, maven依赖的调优技术 maven依赖配置的最佳实践 maven配置的常见问题的解决方案...
  • wanghantong
  • wanghantong
  • 2014年08月06日 22:50
  • 17844

Maven之(九)依赖关系

在maven的管理体系中,各个项目组成了一个复杂的关系网,但是每个项目都是平等的,是个没有贵贱高低,众生平等的世界,全球每个项目从理论上来说都可以相互依赖。就是说,你跟开发Spring的大牛们平起平坐...
  • u012152619
  • u012152619
  • 2016年05月27日 09:39
  • 6840

maven依赖冲突查找

转载自:/loongshawn/article/details/50831890 《Maven依赖加载错误的情况分析》《Java Web工程转换为基于Ma...
  • xyr05288
  • xyr05288
  • 2016年05月17日 18:58
  • 1655

【Maven由浅入深】6.maven的依赖特性

之前我们做了3个模块,user-core、user-log和user-service,之间展现出了相互依赖的特性。 接下来我们要说依赖中几个比较重要的概念。 有没有发现我们的pom文件的标签对可以设...
  • u013517797
  • u013517797
  • 2016年02月03日 11:17
  • 1923

Maven简明教程(4)---依赖关系(理论篇)

[工欲善其事,必先利其器] 在本文中,我们来简单介绍maven中几个常见的概念,这些概念在日常开发中经常见到。各位看官可以下面的介绍作为参考知识。 --------------------------...
  • ABCD898989
  • ABCD898989
  • 2016年02月25日 20:33
  • 2390

maven的pom.xml之聚合、继承、依赖

个人总结: 1.继承 (1)标签: (2)举例 com.tiantian.mavenTest projectA 1.0-SNAPSHOT ...
  • haojiahj
  • haojiahj
  • 2015年11月21日 15:58
  • 4021

【Maven资料】Maven依赖关系

在maven的管理体系中,各个项目组成了一个复杂的关系网,但是每个项目都是平等的,是个没有贵贱高低,众生平等的世界,全球每个项目从理论上来说都可以相互依赖。就是说,你跟开发Spring的大牛们平起平坐...
  • zhangningzql
  • zhangningzql
  • 2016年09月09日 15:12
  • 842

20秒 教你maven2的pom文件的依赖包如何写

所有Maven 库 需要的包 及 pom.xml 中 groupId  artifactId version 都可在这个网上收到。 例如:需要 通过 maven 在项目 中 添加 geronimo-...
  • ywb201314
  • ywb201314
  • 2016年04月21日 16:04
  • 788
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:maven依赖总结
举报原因:
原因补充:

(最多只允许输入30个字)