依赖范围控制哪些依赖在哪些classpath 中可用,哪些依赖包含在一个应用中。让我们详细看一下每一种范围:
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 仓库中引用依赖)。
相关推荐
Maven 中的 Scope 详细说明 Maven 中的 Scope 是一种依赖范围控制机制,用于控制哪些依赖在哪些 classpath 中可用,哪些依赖包含在一个应用中。在 Maven 中,Scope 主要分为五种:compile、provided、runtime、test...
本文将深入探讨"Maven中scope test的使用以及依赖继承传递"这一主题,帮助开发者更好地理解和应用Maven的核心特性。 首先,`scope test`是Maven依赖管理中的一个关键概念。当我们在`pom.xml`文件中为某个依赖设置`...
### Maven安装配置说明 #### Maven概述 Maven是一款强大的项目管理工具,主要用于Java项目的构建、依赖管理和项目信息管理。随着软件公司对项目管理规范性的需求日益增加,Maven的应用比例也在持续上升。通过Maven...
`<scope>`标签在Maven的依赖管理中扮演着决定依赖范围的角色,它定义了特定的依赖在项目的哪些阶段可用,并决定了依赖是否会被包含在最终的部署包中。本文将详细解析`<scope>provided</scope>`的使用和意义。 `...
### Maven3配置说明 #### 一、Maven3概述与重要性 Maven是由Apache基金会维护的一款自动化构建工具,主要用于Java项目的构建、依赖管理和项目信息管理。随着Maven的广泛应用,它已经成为许多开源项目和企业级项目...
【搭建Maven项目】 在IT行业中,Maven和MyEclipse是两个非常重要的工具。Maven是一个项目管理和综合工具,它帮助开发者管理构建过程、依赖关系以及项目文档。而MyEclipse则是一款强大的Java集成开发环境,它集成了...
在Maven项目管理中,`scope`依赖范围是至关重要的概念,它决定了一个依赖在项目的不同阶段如何被引入和使用。Maven有多种scope类型,每个类型都有特定的适用场景和目的,帮助开发者精确控制项目的依赖关系。 1. **...
### Maven的使用说明详解 #### 一、Maven的基础安装与配置 **1.1 Maven的安装** **1.1.1 JDK环境** - **前提条件**:Maven的运行必须先安装JDK。 - **步骤**:确保系统中已安装JDK。 **1.1.2 Maven下载** - **...
自己写的一份关于maven + nexus仓库管理的使用手记 包括了nexus的基本使用及nexus权限管理等
### Maven2使用项目开发规范说明 #### 环境配置 **1.1. 配置Maven2** 为了能够顺利地使用Maven2进行项目开发,首先需要正确配置Maven2环境。按照以下步骤进行操作: 1. **下载与安装Maven2:** - 将Maven2从...
【 Maven 使用说明】 Maven 是一个广泛应用于 Java 开发领域的项目管理工具,它由 Apache 软件基金会支持,旨在简化项目的构建、依赖管理和文档生成。Maven 的核心理念是通过标准化项目结构和自动化构建过程,使...
** Maven 概述** Maven 是一个强大的项目管理和构建工具,广泛应用于Java开发领域。它通过使用一个统一的构建过程,简化了项目的构建、依赖管理以及文档生成等任务。Maven 3.5.2是Maven的一个稳定版本,包含了众多...
【标题】:myeclipse配置maven说明 【正文】: 在现代的Java开发环境中,Maven已经成为构建和管理项目的重要工具。MyEclipse作为一款强大的集成开发环境(IDE),支持对Maven项目的管理和开发。以下将详细介绍如何...
<scope>test</scope> ``` 通过以上介绍,我们可以看到Maven 3.0在项目管理和构建过程中扮演着重要角色,其改进和特性极大地简化了Java开发者的日常工作。通过熟练掌握Maven,开发者可以高效地构建、测试和...
maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装...
【maven】说明:Gradle maven工件发布与maven、maven发布、android maven Gradle插件的演练。该项目包含..., (Gradle maven artifacts publishing walkaround with maven , maven-publish , android-maven gradle ...
Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;Maven...
<scope>test</scope> ``` Maven通过执行不同的生命周期阶段,如`clean`(清理项目)、`compile`(编译源代码)、`test`(运行测试)、`package`(打包应用)和`deploy`(部署应用),帮助开发者完成整个开发...