在POM 中,<dependency>中还引入了<scope>,它主要管理依赖的部署。
目前<scope>可以使用6个属性
* compile,这是 Maven 项目进行编译的时候确定的默认属性。如果你没有为你的包依赖制定任何属性,那么默认采用的是这个属性。编译的依赖关系是一个项目的所有类路径。适用于所有阶段,会随着项目一起发布。
* provided,与 compile 类似,这非常类似于编译,但表示你期望你的工程使用服务器上的 JDK 和 容器中提供的包。例如,当构建一个Java企业版的Web应用程序时,你会设置Servlet API和相关的Java EE API 提供的依赖范围。Web容器已经为你提供了这些类了。这个范围是仅在编译和测试中有效,不会将这个包打包到你的发行项目中。
* runtime,这属性只在运行和测试时候使用的类,这个包不参与项目的编译。
* test,通常我们不会定义一个包的依赖类型,因为这个包在测试和编译中使用,用于编译和运行测试代码。不会随项目发布。
* system,类似provided,你需要明确提供所需要包的路径,Maven不会在Repository中查找它。
* import (仅在 Maven 2.0.9 或者更新版本中有效)
这个属性仅仅用户在标签 <dependencyManagement> 中定义的内容有效。它指明了一个包的依赖关系,特定的 POM 依赖会取代掉另外 POM's <dependencyManagement> 标签中的内容。当这个替换完成后,scope 将会导入到 <dependencyManagement> 中,这个只是 import 依赖关系。
maven 依赖关系中 Scope 属性
http://www.ossez.com/forum.php?mod=viewthread&tid=14728&fromuid=426
分享到:
相关推荐
本示例“简单的maven父子依赖的sample”旨在介绍如何在Maven项目中设置父子模块间的依赖关系,以便更好地组织和管理大型项目。 在Maven中,父子依赖(也称为多模块项目)是一种结构,其中一个项目作为父项目,包含...
**二、Maven依赖管理** 1. **声明依赖(Dependency Declaration)**:在POM中声明项目所需的外部库,Maven会自动下载并管理这些依赖及其依赖的依赖。 2. **依赖范围(Dependency Scope)**:不同类型的依赖有不同...
此外,书中的内容还会涵盖Maven的依赖管理和解决冲突的方法,如使用 exclusion 标签排除不想要的依赖,以及使用scope属性控制依赖的范围。读者还将了解到Maven仓库的概念,包括本地仓库、远程仓库和中央仓库,以及...
- 依赖范围:理解scope属性,如compile、runtime、test、provided和system等。 - 依赖冲突解决:讲解Maven的依赖解决策略,如第一声明者优先原则和最新适用版本原则。 5. **插件和构建配置** - Maven插件:介绍...
Maven是一个项目管理和综合工具,它帮助管理项目的构建、报告和依赖关系。 首先,让我们从安装和配置Maven开始。确保你已经安装了Java Development Kit (JDK),因为Maven需要Java环境来运行。你可以从Oracle官网...
1. **Maven依赖管理** Maven的`dependency`标签用于在`pom.xml`文件中声明项目所依赖的外部库。这些依赖可以是JAR文件,也可以是其他Maven项目。依赖管理包括指定依赖的`groupId`(组织ID)、`artifactId`(项目ID...
Maven是一款强大的Java项目管理和集成工具,它通过XML格式的配置文件(pom.xml)来管理项目的构建、报告和依赖关系。Maven2相较于其前身Maven1进行了大量改进,提供了更高效、简洁的体验。本手册将深入探讨Maven2的...
Maven的依赖管理能自动解决项目之间的依赖关系。当项目A依赖于B,而B又依赖于C时,Maven会自动将C的jar包引入到项目A中,这就是传递性依赖。`mvn dependency:tree`命令可以查看项目完整的依赖树。 ### 五、插件及其...
同时,Maven支持依赖范围(scope),如compile、runtime、test、provided和system,定义了依赖在不同构建阶段的可见性。 总结,Maven是Java开发中不可或缺的工具,它提供了一套标准的项目管理框架,极大地提高了...
- 依赖范围(scope):如compile、runtime、test等,决定依赖在哪些阶段可用。 5. **插件管理** - Maven插件用于执行特定的任务,如打包、测试、部署等。 - 插件配置在POM中,包括插件的groupId、artifactId、...
### 二、配置Maven依赖 打开`pom.xml`文件,添加Activiti 7的依赖。在`dependencies`标签内,加入以下代码: ```xml <groupId>org.activiti <artifactId>activiti-spring-boot-starter <version>7.x.y ``` ...
Maven自动处理项目的依赖关系,如果一个项目依赖A,而A又依赖B,那么Maven会自动将B也引入到项目中。同时,Maven提供了一种依赖范围(scope)的概念,如`compile`、`runtime`、`test`等,来控制依赖在不同环境下的...
3. **依赖管理 (Dependency Management)**:Maven自动管理项目依赖关系,通过POM文件声明依赖,Maven会自动下载并管理这些依赖。 4. **插件 (Plugins)**:Maven使用插件执行构建任务,如编译、测试、打包、部署等。...
- Maven会自动解决依赖关系,将所有依赖项加入到项目中。 3. **Maven安装与配置** - 下载Maven安装包,例如`apache-maven-3.0.5`,解压到指定目录。 - 配置环境变量,设置`MAVEN_HOME`指向Maven的安装路径,并将...
- POM(Project Object Model):POM是Maven中的核心概念,它是一个XML文件,包含了项目的基本信息,如项目名称、版本、开发者信息、依赖关系、构建目标等。 - 依赖管理:Maven通过POM文件自动管理项目的依赖关系...
3. **依赖范围**:scope属性定义依赖在哪个阶段有效,如compile、test、runtime等。 ### 七、Maven的Repository 1. **本地仓库**:默认在用户主目录的`.m2\repository`下。 2. **中央仓库**:默认使用Maven的中央...
其中,`pom.xml` 文件是 Maven 项目的核心配置文件,它定义了项目的元数据以及构建过程中的依赖关系等。 ##### 2.2 常用命令 - `mvn clean compile` - 清理输出目录 `target/`,并编译项目主代码。 - `mvn clean ...
#### Maven依赖管理 - **依赖排除**:在`pom.xml`中使用`<exclusions>`元素来排除不必要的依赖。 - **依赖传递**:当项目依赖另一个项目时,该依赖也会传递到当前项目中,除非明确排除。 #### Maven自动化部署 - ...