`
Roger111
  • 浏览: 49665 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

maven的依赖范围

阅读更多

依赖范围是用来控制依赖与3种classpath(编译classpath,测试classpath,运行classpath)的关系。maven有以下几种依赖范围:

  • Compile:编译依赖范围。默认使用此依赖范围,其下的maven依赖,对于编译,测试,运行classpath都有效。
  • Test:测试依赖范围。只对测试classpath有效,编译主代码或运行项目时无法使用此依赖。典型例子如junit。
  • Provided:已提供依赖范围。其对于编译与测试classpath有效,运行时无效。如在web开发时,只有在编译和测试时才用到servlet-api,将其设置为此范围,在运行时servlet-api由web容器提供,无须依赖。并且在打war包时,此范围的依赖不会打在WEB-INF/lib下。
  • Runtime:运行时依赖范围。与provided相对,运行时classpath有效。典型例子如jdbc。
  • System:系统依赖范围。其和三种classpath的关系,与provided一样。但是使用此依赖范围必须通过SystemPath元素显示地指定依赖文件的路径。由于与本机系统绑定,移植性差。如:

<dependency>
<groupId>tools</groupId>
<artifactid>tools</artifactId>
<version>1.6.30</version>
<scope>System</scope>
<systemPath>${java.home}/lib/tools.jar</systemPath>
</dependency>
 
分享到:
评论

相关推荐

    maven依赖+继承+聚合

    此外,Maven还支持依赖范围(scope),如编译(compile)、测试(test)、运行(runtime)等,以控制依赖在不同阶段的作用。 接下来是"Maven继承"。在大型项目中,多个模块可能共享相同的配置或依赖。Maven的继承...

    Maven 依赖详细理解.pdf

    依赖范围(scope)是Maven依赖管理的一个重要概念。scope定义了依赖项的使用范围,主要有以下几个选项:compile、provided、runtime和test。compile表示依赖项在编译时需要,provided表示依赖项在编译和测试时需要,但...

    Maven依赖作用范围

    Maven依赖作用范围

    Maven的依赖验证项目

    在压缩包中的“Maven依赖特性”可能包含了一些特定的示例或者配置,用于展示Maven如何处理不同类型的依赖特性,例如:范围(scope,如compile、test等)、排除依赖、强制版本等。通过实际操作这些例子,你可以更深入...

    Maven中的依赖

    3. **依赖范围(scope)**:Maven允许我们定义依赖的范围,如compile(编译范围)、test(测试范围)、runtime(运行时范围)等。不同范围的依赖会在不同的阶段被引入到类路径中。 4. **依赖解决**:Maven会自动...

    关于项目、产品maven依赖问题

    - **版本一致但顺序错误**:即使两个模块都依赖同一版本的framework-webapp,如果未正确设置依赖范围和顺序,升级其中一个模块时,其他依赖可能无法更新,从而造成更新失败。 3. 解决策略: Maven的`&lt;scope&gt;`标签...

    Maven入门巨无霸视频教程(2.24G)

    使用Maven核心概念介绍(坐标、依赖、仓库、插件、生命周期等)、Maven与第三方Elicpse整合及如何在Eclipse中使用...任亮系列-maven依赖范围.mp41212.任亮系列-maven依赖传递和可选依赖和排除依赖.mp41313.任亮系列-mav

    Maven运行依赖实例

    2. **依赖解析**:Maven遵循“依赖继承”和“范围”原则。如果一个项目依赖于另一个项目,那么前者也会间接拥有后者的依赖。依赖的范围可以是`compile`(编译时)、`test`(仅测试时)、`runtime`(运行时)等,根据...

    Maven依赖管理项目构建工具.pdf

    4. 依赖范围 定义了依赖在哪些构建阶段可用,如compile范围的依赖在所有阶段都可用,而test范围的依赖只在测试阶段可用。 5. Maven工程依赖下载失败错误解决 当Maven无法下载依赖时,可以检查网络、镜像配置、pom....

    深入Maven依赖管理:精通依赖范围的艺术

    本地仓库服务于当前电脑上所有的Maven工程,而远程仓库和中央仓库则可以服务于更广范围内的Maven工程。Maven的配置文件`pom.xml`是构建过程中的核心,其中包含了与构建相关的所有设置。 Maven还提供了一套标准化的...

    day02Maven-教案-实战(IDEA).pdf

    #### Maven依赖范围 - **compile**:编译依赖,项目构建时需要,打包时也包含。 - **test**:测试依赖,仅在编译测试代码时使用。 - **provided**:编译时需要,但运行时由JDK或容器提供。 #### Maven构建SSM工程 ...

    架构师面试题系列之Maven面试专题及答案(18题).docx

    Maven 依赖范围: 1. compile:编译依赖,默认的依赖方式,在编译、测试和运行三个阶段都有效。 2. test:测试依赖,只在编译测试用例和运行测试用例有效。 3. provided:对于编译和测试有效,不会打包进发布包中。...

    Maven之scope依赖范围.docx

    在Maven项目管理中,`scope`依赖范围是至关重要的概念,它决定了一个依赖在项目的不同阶段如何被引入和使用。Maven有多种scope类型,每个类型都有特定的适用场景和目的,帮助开发者精确控制项目的依赖关系。 1. **...

    Maven传递依赖和依赖的规则.docx

    **二、Maven依赖原则** Maven的依赖原则主要为了解决多个依赖之间的版本冲突问题,它遵循两个基本规则: 1. **路径最短优先原则**:当两个不同版本的相同依赖出现在依赖树中,Maven会选择路径较短的那个版本。例如...

    Maven 多项目依赖关系

    4. **依赖范围**:Maven允许我们为依赖设置不同的范围,如编译(compile)、测试(test)、运行(runtime)、提供(provided)等,控制依赖在不同阶段的可见性。 四、Maven生命周期与构建过程 Maven拥有一个标准的...

    mvn2gradle:简单的 Maven 到 Gradle 依赖转换器

    将 Maven 依赖项转换为 Gradle 的非常基本的网页。 目前只解析 groupId、artifactId 和 version。 范围被忽略。 如果使用版本变量,它将保留它,但您仍然需要在 build.gradle 文件中定义该变量 例子: 这 - ...

    maven依赖关系中的&lt;scope&gt;provided&lt;/scope&gt;使用详解

    除了`provided`,Maven依赖的其他常见`scope`还包括: 1. **compile**:这是默认的`scope`,表示依赖在整个生命周期中都是可用的,并且会传递给依赖的项目。适用于所有阶段,会在最终的部署包中包含。 2. **...

    maven3.0 maven3.0

    它引入了新的依赖范围和更精确的依赖解析算法,减少了由于依赖问题导致的构建失败。 3. **增强的插件管理**:Maven 3.0 引入了插件版本管理,允许在父POM中定义插件版本,子模块可以直接继承,减少了重复代码,提高...

    Maven中scope详细说明

    Maven 中的 Scope 是一种依赖范围控制机制,用于控制哪些依赖在哪些 classpath 中可用,哪些依赖包含在一个应用中。在 Maven 中,Scope 主要分为五种:compile、provided、runtime、test 和 system。 compile...

Global site tag (gtag.js) - Google Analytics