Maven 的依赖范围和传递

  Maven 执行一系列编译、测试和部署运行等操作,在不同的操作下使用不同的Classpush ,依赖范围就是用来控制依赖与三种classpath的关系

  1. compile :编译依赖(默认),使用此依赖范围对于编译、测试、运行三种classpath 都有效,即在编译、测试和运行的时候都要使用该依赖jar包;
  2. test:测试依赖范围,只能用于测试classpath,而在编译和运行项目时无法使用此类依赖
  3. provite:此依赖范围,对于编译和测试classpath 有效,而对运行时无效;
  4. runtime:系统依赖范围,使用system范围的依赖时必须通过systempath元素显示地指定依赖文件的路径,不依赖仓库解析,所以会造成构建不可移植 

依赖范围不仅可以控制与三种classpath的关系,还对传递性依赖产生影响

时间: 2024-10-13 21:23:46

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

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