依赖范围控制哪些依赖在哪些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权限管理等
【 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`(部署应用),帮助开发者完成整个开发...
Apache Maven是一个强大的项目管理工具,它提供了丰富的插件系统来扩展构建过程。exec-maven-plugin是Maven生态系统中的一个插件,它允许用户在Maven构建过程中执行外部命令或脚本。这使得Maven项目可以集成更多的...
【Maven 详细说明及在MyEclipse中的配置】 Maven 是一个强大的构建工具,它在Java开发中广泛使用,用于管理和构建项目。Maven通过使用一个统一的项目对象模型(Project Object Model, POM)来描述项目,并利用一套...