第4章 maven依赖特性
来源:互联网 发布:app拍照软件排行 编辑:程序博客网 时间:2024/04/28 01:10
第4章 maven依赖特性
本章详细介绍maven的依赖特性和依赖范围,如何排除依赖。
4.1 什么是依赖传递
举个例子
在非maven项目中,你需要使用spring功能,你会想到导入spring的jar包,那么,srping又需要其他依赖jar包支持,所以你又需要去导入其他jar包,多次反复尝试启动项目后,你终于成功了!
maven项目就不需要这么麻烦,你只要在pom.xml文件中,引入spring相关配置,那么他会自动引入其他依赖jar包,这就是maven的依赖传递。
以下是一个配置文件,仅引入了spring和junit两个依赖配置,但maven已自动导入了其他的jar包
<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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.group</groupId> <artifactId>simple</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>simple</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <org.springframework-version>3.1.0.RELEASE</org.springframework-version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${org.springframework-version}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies></project>
4.2 依赖特性的特点
4.2.1 依赖范围
什么是依赖范围?
依赖范围指:决定依赖特性在构建的哪个阶段起作用。
举个例子,我需要做junit测试,所以需要引入junit相关jar,但我在发布项目时,我又不需要这个jar,所以(你有这个需求,maven肯定有这个解决办法),在配置时,需要指定依赖的范围。
在配置依赖时,scope标签就是用来规范依赖范围。
4.2.2 排除依赖
因为maven的依赖传递特性,所以很有可能一些你不需要的依赖也会包含在工程类路径中,为了解决这种情况,maven已经引入了依赖排除概念。
1.
如何使用排除依赖
在pom.xml文件中,<dependency>
标签中加上<exclusions>
标签
<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.5.1</version> <exclusions> <exclusion> <groupId>tomcat</groupId> <artifactId>jasper-runtime</artifactId> </exclusion> <exclusion> <groupId>tomcat</groupId> <artifactId>jasper-compiler</artifactId> </exclusion> </exclusions></dependency>
例如以上代码,在使用hadoop-common时,排除掉jasper-runtime, jasper-compiler两个依赖jar。
2.
使用通配符进行依赖排除
有的时候,依赖过多,我们不需要一个个的去排除,可使用通配符来实现
<dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-core</artifactId> <version>4.5.0-HBase-1.0</version> <exclusions> <exclusion> <groupId>org.mortbay.jetty</groupId> <artifactId>*</artifactId> </exclusion> </exclusions></dependency>
例如以上代码,排除groupId 是org.mortbay.jetty的所有jar包。
首页传送门
- 第4章 maven依赖特性
- 03、maven依赖特性
- maven的依赖特性
- maven依赖特性
- maven的依赖特性
- 【学习笔记】Maven依赖特性
- 【Maven由浅入深】6.maven的依赖特性
- 第5章 maven继承特性
- 第6章 maven聚合特性
- maven的依赖特性,冲突解决(五)
- maven的依赖特性,冲突解决(五)
- maven实战 第5章 坐标和依赖
- 一起学Maven(Maven的依赖管理特性)<三>
- maven-Maven的依赖特性和冲突解决
- Maven(4)maven依赖
- [Maven]4,依赖
- Maven入门之依赖-第三节
- Maven入门之依赖-第三节 .
- 5.5 输入组装阶段
- Myeclipse注册方法
- Linux常用命令大全
- Hanoi Tower
- 【源码分享】经典指标和K线图系列之MACD
- 第4章 maven依赖特性
- Matlab 最大值滤波 中值滤波 最小值滤波 ordfilt2
- 第5章 maven继承特性
- Android动画被父View遮挡的解决办法
- 基于opencv的相机之拼图功能实现(十)
- 第6章 maven聚合特性
- win7 下ffmpeg release 版本av_register_all崩溃问题
- 第7章 仓库
- 第8章 私服nexus