maven的依赖范围

转载:http://blog.csdn.net/zhuxinhua/article/details/5789278

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仓库中引用

依赖)。

时间: 2024-10-20 20:03:04

maven的依赖范围的相关文章

maven可选依赖(Optional Dependencies)和依赖排除(Dependency Exclusions)

我们知道,maven的依赖关系是有传递性的.如:A-->B,B-->C.但有时候,项目A可能不是必需依赖C,因此需要在项目A中排除对A的依赖.在maven的依赖管理中,有两种方式可以对依赖关系进行,分别是可选依赖(Optional Dependencies)以及依赖排除(Dependency Exclusions). 一.可选依赖 当一个项目A依赖另一个项目B时,项目A可能很少一部分功能用到了项目B,此时就可以在A中配置对B的可选依赖.举例来说,一个类似hibernate的项目,它支持对mys

创建第二个 maven (依赖的使用)(注:这篇博文与上一篇博文内容关系密切)

1.第二个工程的创建: a.它的目录层次结构为下图所示: 注:第二个 maven 工程和第一个maven 工程保存的目录一样,和 .metadata同在一个目录下. b.pom.xml文件 以及 HelloFriend.java 和 HelloFriendTest.java 文件填写的内容为: <?xml version="1.0" ?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns

eclipse libraries 不存在maven的依赖包

eclipse libraries 不存在maven的依赖包时,照着下面一步步来 1.项目右键->Build Path -> Java Build Path ->Libraries ->Add Library ->Maven Managed Dependences->点击Next ->点击'Maven Project settings' , 在'Active Maven Profiles (comma separated)'中添加"Maven Depen

Maven传递依赖的时候,同名包不同版本的包均会下载,但是编译的时候,只会加载一个高版本的。

描述,在一个Maven项目中,同时依赖了spring-tomcat-weaver  和  struts-core 包,但是spring-tomcat-weaver 需要commons-digester-1.2 struts-core 需要commons-digester-1.8 Pom文件如下: <dependencies> <dependency> <!-- 需要commons-digester-1.2包 --> <groupId>org.springfr

eclipse插件Maven添加依赖查询无结果的解决方法(Select Dependency doesn&#39;t work)

在eclipse中用过maven的可能都遇到过这种情况,我以前一直在search.maven里面搜索,然后添加pom信息. 今天在网上搜索时,找到了一个解决方法,在这里分享一下. 第一步,在preferences里面选择maven,选中"Download repository index updates on startup" 第二步,打开Maven仓库 第三步,在全局仓库上右键选择"Full Index Enabled" 选择之后,maven会下载一个近百兆的索引

[转]使用Maven添加依赖项时(Add Dependency)时,没有提示项目可用,并且在Console中,输出: Unable to update index for central|http://repo1.maven.org/maven2 。

使用Maven添加依赖项时(Add Dependency)时,没有提示项目可用,并且在Console中,输出: Unable to update index for central|http://repo1.maven.org/maven2 . 解决方式如下: 1.通过其它方式下载如下两个文件: http://repo1.maven.org/maven2/.index/nexus-maven-repository-index.properties http://repo1.maven.org/m

Maven之——依赖与插件管理

Maven之--依赖与插件管理 1.    依赖管理 并不是父POM中配置的所有依赖在不同的子类中都能用到.或者用到了但是不是统一版本.为解决这个.在父POM标签中定义依赖信息.在子POM中加入依赖的引入.具体细节如下:在父POM中配置项目中使用到的依赖.但是不再是dependency标签中配置.因为此标签可以自动被继承.使用dependencyManagement标签.此标签中定义的dependency不会被子POM自动引入.必须在子类中使用dependency声明.可能有些时候会觉得直接在子

Idea maven tomcat 配置热更新 以及 maven jar依赖

看了视频 实在忍不住上了idea的贼船 不过这玩意确实有点坑爹,因为用的人少,所以很多配置是有问题的 例如maven配置tomcat热更新 以及tomcat的maven配置 我这里放几张图作为备用 配置maven web项目跟tomcat的时候一定要选这个按钮进去 然后把一些maven的依赖,全部添加到tomcat,否则tomcat会找不到jar包,然后在web运行的时候报错,启动的时候是不会出现错误的 我这里已经把maven依赖添加进去了,所以不会有问题,右侧已经没有elements这个列表选

linux下安装SVN和MAVEN,并依赖MAVEN环境打包MAVEN项目

一.前提条件 系统环境为: [[email protected] application]# cat /etc/redhat-release CentOS release 6.7 (Final) [[email protected] application]# uname -r 2.6.32-573.el6.x86_64 需要准备的安装包为: subversion-1.6.1.tar.gz subversion-deps-1.6.1.tar.gz apache-maven-3.3.3-bin.t

Maven 实现依赖框架jar包的版本管理

1.版本统一管理 要实现jar的版本统一管理需要对jar的版本进行设置即<version></version>,如下是一段版本控制的以来配置: <dependencies> ................. <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-all</artifactId> <version>${o