maven基础:依赖范围-阿里云开发者社区

开发者社区> hiekay> 正文

maven基础:依赖范围

简介: maven基础:依赖范围
+关注继续查看

compile(编译范围)

compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范

围。编译范围依赖在所有的classpath中可用,同时它们也会被打包。

provided(已提供范围)

provided依赖只有在当JDK或者一个容器已提供该依赖之后才使用。例如,如果

你开发了一个web应用,你可能在编译classpath中需要可用的Servlet API来编

译一个servlet,但是你不会想要在打包好的WAR中包含这个Servlet API;这个

Servlet API JAR由你的应用服务器或者servlet容器提供。已提供范围的依赖在

编译classpath(不是运行时)可用。它们不是传递性的,也不会被打包。

runtime(运行时范围)

runtime依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如,你

可能在编译的时候只需要JDBC API JAR,而只有在运行的时候才需要JDBC驱动实

现。

#### test(测试范围)

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

行阶段可用。

#### system(系统范围)

system范围依赖与provided类似,但是你必须显式的提供一个对于本地系统中

JAR文件的路径。这么做是为了允许基于本地对象编译,而这些对象是系统类库

的一部分。这样的构件应该是一直可用的,Maven也不会在仓库中去寻找它。。如

果你将一个依赖范围设置成系统范围,你必须同时提供一个systemPath元素。注

意该范围是不推荐使用的(你应该一直尽量去从公共或定制的Maven仓库中引用

依赖)。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10015 0
依赖冲突解决|学习笔记
快速学习依赖冲突解决
26 0
C/C++中各种类型int、long、double、char表示范围(最大最小值)
来源:http://blog.csdn.net/xuexiacm/article/details/8122267 1 #include 2 #include 3 #include 4 using namespace std; 5 6 int main(...
777 0
Android Jcenter 依赖完整版
Jcenter 依赖完整版 测试环境: github仓库(码云仓库无法依赖)、Jcenter仓库、Android Studio2.2.2、Gradle 2.14.1、TortoiseSVN 1.9.6。
1367 0
Guice依赖注入(基础版)
本教程主要详细讲解Guice的一些基本注入方式,通过该简单教程让我们可以快速使用Guice进行简单系统化开发,后续我们会更深入讲解更多模块,如果还不了解Guice大家可以先去网上自行了解一下.
63 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13817 0
查找依赖库的最新版本
查找依赖库的最新版本 项目中用到了 Fresco 来处理图片,当根据官网提示去导入依赖类库时,sync后发现编译错误,在谷歌上搜了搜,找到了解决办法。 修改前根据 Fresco 的提示复制了以下依赖 compile 'com.facebook.fresco:fresco:0.14.1' 修改后根据谷歌出来的fresco版本 compile 'com.facebook.fresco:fresco:0.6.0+' 这样编译错误就解决了。
820 0
+关注
hiekay
java 数据分析 数据可视化 大数据
183
文章
90
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载