依赖范围

------------------------siwuxie095

依赖范围

1、Maven 在编译、测试和运行时,分别使用三种不同的 classpath

(1)编译
classpath

(2)测试
classpath

(3)运行
classpath

2、依赖范围就是用来控制依赖与上述三种
classpath 的关系

(1)compile:编译依赖范围(默认依赖范围)

对编译、测试、运行三种
classpath 都有效,典型:spring-core

(2)test:测试依赖范围

只对测试
classpath 有效,典型:junit

(3)provided:已提供依赖范围

对编译、测试两种
classpath 有效,对运行 classpath 无效,典型:servlet-api

(4)runtime:运行时依赖范围

对测试、运行两种
classpath 有效,对编译 classpath 无效,典型:JDBC 驱动

(5)system:系统依赖范围

1)对编译、测试两种
classpath 有效,对运行 classpath 无效

2)使用时必须通过
systemPath 标签显式指定依赖文件的路径

「其实就是本机上除了
Maven 仓库之外的类库」

3、依赖范围和
classpath 的关系表


依赖范围


编译
classpath


测试
classpath


运行
classpath


例子


compile





spring-core


test


×



×


junit


provided




×


servlet-api


runtime


×




JDBC 驱动


system




×


本机除
Maven 仓库外的类库

【made by siwuxie095】

时间: 2024-12-11 14:23:30

依赖范围的相关文章

maven依赖本地非repository中的jar包-依赖jar包放在WEB-INF/lib等目录下的情况客户端编译出错的处理

maven依赖本地非repository中的jar包 http://www.cnblogs.com/piaolingxue/archive/2011/10/12/2208871.html 博客分类: MAVEN 今天在使用maven编译打包一个web应用的时候,碰到一个问题: 项目在开发是引入了依赖jar包,放在了WEB-INF/lib目录下,并通过buildpath中将web libariary导入. 在eclipse中开发没有问题,但是使用maven编译插件开始便宜总是报找不到WEB-INF

[转]ubuntu16.04安装teamviewer12依赖包解决

安装teamviewer下载地址:http://www.teamviewer.com/en/download/linux/ 下载的是:teamviewer_12.0.76279_i386.deb 安装时过程: ?  下载 sudo dpkg -i teamviewer_12.0.76279_i386.deb (正在读取数据库 ... 系统当前共安装有 180540 个文件和目录.) 正准备解包 teamviewer_12.0.76279_i386.deb  ... 正在将 teamviewer:

WPF 依赖属性概念

理解依赖属性 在 WPF 中变成相比较于 传统 Windows Forms 变成发生了较大的改变. 属性现在以一组服务的形式提供给开发人员. 这组服务就叫做属性系统. 由 WPF 属性系统所支持的属性成为依赖属性. 依赖属性的概念 WPF 在依赖属性中提供了标准属性无法提供的功能, 特性如下: 决定属性值: 依赖属性的属性值可以在运行时有其他元素或者是其他信息所决定, 决定的过程具有一个优先次序. 自动验证或变更通知: 依赖属性哟一个自定的回调方法, 当属性值变更时被执行, 这个回调能验证新的值

第三百二十三节,web爬虫,scrapy模块以及相关依赖模块安装

第三百二十三节,web爬虫,scrapy模块以及相关依赖模块安装 当前环境python3.5 ,windows10系统 Linux系统安装 在线安装,会自动安装scrapy模块以及相关依赖模块 pip install Scrapy 手动源码安装,比较麻烦要自己手动安装scrapy模块以及依赖模块 安装以下模块 1.lxml-3.8.0.tar.gz (XML处理库) 2.Twisted-17.5.0.tar.bz2 (用Python编写的异步网络框架) 3.Scrapy-1.4.0.tar.gz

maven的两种可运行jar打包方式。1、内置依赖,2、外部依赖。

maven打可运行jar包的两种方式 maven常用的普通打包方式分为pom,jar,war等,至于这些打包类型就不介绍啦. 如果不进行特殊配置,那么打包出来的jar包是不可运行的.只能当作普通依赖包使用. 下面就介绍两种maven打可运行jar包的方式: 方式一:内置打包法 <plugins> <!-- 内置打包法 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <!-- 

iOS控制反转(IoC)与依赖注入(DI)的实现

背景 最近接触了一段时间的SpringMVC,对其控制反转(IoC)和依赖注入(DI)印象深刻,此后便一直在思考如何使用OC语言较好的实现这两个功能.Java语言自带的注解特性为IoC和DI带来了极大的方便,要在OC上较好的实现这两个功能,需要一些小小的技巧. 控制反转和依赖注入 控制反转 简单来说,将一个类对象的创建由手动new方式改为从IOC容器内获取,就是一种控制反转,例如我们现在要创建一个ClassA类,则常规方法为 ClassA *a = [ClassA new]; 如果使用控制反转,

设计模式六大原则: 老板是如何减轻负担的 -- 依赖倒置原则

很多创业公司都对外宣称"扁平化管理",什么是"扁平化管理"呢?请看下面这张架构图: 因为人少,老板直接管理着采购.销售.人力跟 IT 等人员,虽然累了点,但部门少.人不多也还好. 但是随着公司规模发展,每次新加入人员老板都要去认识.沟通,出现问题还得去约出去喝个茶,老板发现自己的时间都浪费在这些琐事,容易耽搁事不说,还发挥不出更大价值. 这时他决定招一些经理替自己分别管理各个部门,自己只要管理这些经理就好了. 于是新的架构图是这样的: 老板这下子省心多了,有问题直接

[Maven实战](9)传递性依赖

了解Spring的朋友都知道,创建一个Spring Framework项目都需要依赖什么样的Jar包.如果不使用Maven,那么在项目中就需要手动下载相关的依赖.由于Spring Framework又会依赖与其他开源类库,因此实际中往往会下载Spring Framework的jar包,还的下载所有它依赖的其他jar包.这么做往往就引入了很多不必要的依赖.另一种做法是只下载Spring Framework的jar包,不包含其他的相关依赖,到实际使用的时候,再根据报错信息,或者查询相关文档,加入需要

详解 Spring 3.0 基于 Annotation 的依赖注入实现(转)

使用 @Repository.@Service.@Controller 和 @Component 将类标识为 Bean Spring 自 2.0 版本开始,陆续引入了一些注解用于简化 Spring 的开发.@Repository 注解便属于最先引入的一批,它用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean.具体只需将该注解标注在 DAO 类上即可.同时,为了让 Spring 能够扫描类路径中的类并识别出 @Repository 注解,需要在 XML 配置文件中启用 Bean

工厂模式、控制反转及依赖注入

在介绍工厂模式与控制反转(Inversion of Control)及依赖注入(Dependency Injection)之前,先介绍下类的调用方法.目前调用方法总共有3种:1.自己创建:2.工厂模式:3.外部注入,其中外部注入即为控制反转/依赖注入模式(IoC/DI).我们可以用3个形象的东西来分别表示它们,就是new.get.set.顾名思义,new表示自己创建,get表示主动去取(即工厂),set表示是被别人送进来的(即注入),其中get和set分别表示了主动去取和等待送来两种截然相反的特