文档章节

maven中依赖的scope各个取值的含义

阿信sxq
 阿信sxq
发布于 2014/02/13 11:02
字数 583
阅读 312
收藏 3
        依赖范围控制哪些依赖在哪些 classpath 中可用,哪些依赖包含在一个应用中。让我们详细看一下每一种范围:

1、compile (编译范围)

        compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath 中可用,同时它们也会被打包。

2、provided (已提供范围)

        provided 依赖只有在当JDK 或者一个容器已提供该依赖之后才使用。例如, 如果你开发了一个web 应用,你可能在编译 classpath 中需要可用的Servlet API 来编译一个servlet,但是你不会想要在打包好的WAR 中包含这个Servlet API;这个Servlet API JAR 由你的应用服务器或者servlet 容器提供。已提供范围的依赖在编译classpath (不是运行时)可用。它们不是传递性的,也不会被打包。

3、runtime (运行时范围)

        runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如,你可能在编译的时候只需要JDBC API JAR,而只有在运行的时候才需要JDBC
驱动实现。

4、test (测试范围)

        test范围依赖 在一般的编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用。

5、system (系统范围)

        system 范围依赖与 provided 类似,但是你必须显式的提供一个对于本地系统中 JAR 文件的路径。这么做是为了允许基于本地对象编译,而这些对象是系统类库的一部分。这样的构件应该是一直可用的, Maven 也不会在仓库中去寻找它。如果你将一个依赖范围设置成系统范围,你必须同时提供一个 systemPath 元素。注意该范围是不推荐使用的(你应该一直尽量去从公共或定制的 Maven 仓库中引用依赖)。

本文转载自:http://drizzlewalk.blog.51cto.com/2203401/665590/

共有 人打赏支持
阿信sxq

阿信sxq

粉丝 228
博文 83
码字总数 73652
作品 1
成都
后端工程师
私信 提问
Maven Scope取值的含义

maven依赖关系中Scope的作用 Dependency Scope 在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值: compile,缺省值,适用于所有阶段,会随着项目...

boonya
2013/06/29
0
0
DICOM:dcm4che开源项目导入Eclipse编译错误问题解决方案

版权声明:本文为zssure原创文章,转载请注明出处,未经允许不得转载。 https://blog.csdn.net/zssureqh/article/details/50443824 背景: 马上跨年了,记得小时候元旦都不是事儿,怎么长大了...

zssure
2015/12/31
0
0
Maven依赖中scope的含义

Maven依赖中scope的含义 整理一下Maven中Scope的详细作用,都是抄的别人内容整理了一下。参考: https://blog.csdn.net/claram/article/details/77646263 https://blog.csdn.net/kimylrong/...

UEUEO
2018/11/26
0
0
MAVEN 学习笔记

一、MAVEN是什么? maven将自己定位为一个项目管理工具。它负责管理项目开发过程中的几乎所有的东西: 版本——maven有自己的版本定义和规则 构建——maven支持许多种的应用程序类型,对于每...

lizo
2016/12/04
20
0
全网首例全栈实践(四)Spring Boot创建项目与配置详解

一、项目创建 我们使用IDEA工具开发后台项目,具体的安装过程自行搜索,比较简单。安装完成后打开IDEA,菜单栏选择File->New-Project,选择Spring Initializr,默认选择Default,然后Next。 ...

充电实践
01/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

高度可配置的 Linux 内存守护程序 Nohang!

部分功能特性 具有良好注释的配置文件,配置方面(配置中有 38 个参数) 可以将 SIGKILL 和 SIGTERM 作为发送给 victim 的信号 支持 zram(使用 mem_used_total 作为触发器) 可定制的监控强...

linuxCool
20分钟前
1
0
开源 java CMS - FreeCMS2.8 数据对象 unit

项目地址:http://www.freeteam.cn/ unit 在使用单位相关标签时,标签会封装unit供页面调用。 属性 说明 id id ismail 是否接收互动信件 name 名称 parid 父单位id isok 是否有效 ordernum 排...

freeteam
27分钟前
2
0
awk

awk awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是...

李超小牛子
38分钟前
1
0
扩展资源服务器解决oauth2 性能瓶颈

用户携带token 请求资源服务器 资源服务器拦截器 携带token 去认证服务器 调用tokenstore 对token 合法性校验 资源服务器拿到token,默认只会含有用户名信息 通过用户名调用userdetailsserv...

冷冷gg
今天
29
0
[Git] Git整理(四) git rebase 的使用

概述 在之前总结分支相关内容时说道,合并两个分支的提交可以使用git merge,然而除了这种方式之外,还有一种方式就是使用git rebase,这两种方式的最终结果都相同,但是合并历史却不同;git...

天王盖地虎626
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部