Maven在配置pom时需要有dependency依赖的配置,其中有依赖的作用范围,一共有五种范围。
1. compile(编译范围)
compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath中可用,同时它们也会被打包。
2. provided(已提供范围)
provided依赖只有在当JDK或者一个容器已提供该依赖之后才使用。例如,如果你开发了一个web应用,你可能在编译classpath中需要可用的Servlet API来编译一个servlet,但是你不会想要在打包好的WAR中包含这个Servlet API;这个
Servlet API JAR由你的应用服务器或者servlet容器提供。已提供范围的依赖在编译classpath(不是运行时)可用。它们不是传递性的,也不会被打包。
3. runtime(运行时范围)
runtime依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如,你可能在编译的时候只需要JDBC API JAR,而只有在运行的时候才需要JDBC驱动实现。
4. test(测试范围)
test范围依赖 在一般的 编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用。
5. system(系统范围)
system范围依赖与provided类似,但是你必须显式的提供一个对于本地系统中
JAR文件的路径。这么做是为了允许基于本地对象编译,而这些对象是系统类库
的一部分。这样的构件应该是一直可用的,Maven也不会在仓库中去寻找它。。如
果你将一个依赖范围设置成系统范围,你必须同时提供一个systemPath元素。注
意该范围是不推荐使用的(你应该一直尽量去从公共或定制的Maven仓库中引用
依赖)。
分享到:
相关推荐
本文将深入探讨"Maven中scope test的使用以及依赖继承传递"这一主题,帮助开发者更好地理解和应用Maven的核心特性。 首先,`scope test`是Maven依赖管理中的一个关键概念。当我们在`pom.xml`文件中为某个依赖设置`...
**Maven的Dependency测试** 在Java开发中,Maven是一个不可或缺的构建工具,它通过管理项目的依赖关系,简化了项目的构建、编译和部署过程。本文将深入探讨Maven的Dependency测试方面,帮助开发者理解如何有效地...
此外,Maven还支持依赖范围(scope),如编译(compile)、测试(test)、运行(runtime)等,以控制依赖在不同阶段的作用。 接下来是"Maven继承"。在大型项目中,多个模块可能共享相同的配置或依赖。Maven的继承...
在Maven项目管理中,`scope`依赖范围是至关重要的概念,它决定了一个依赖在项目的不同阶段如何被引入和使用。Maven有多种scope类型,每个类型都有特定的适用场景和目的,帮助开发者精确控制项目的依赖关系。 1. **...
`<scope>`标签在Maven的依赖管理中扮演着决定依赖范围的角色,它定义了特定的依赖在项目的哪些阶段可用,并决定了依赖是否会被包含在最终的部署包中。本文将详细解析`<scope>provided</scope>`的使用和意义。 `...
<scope>test</scope> </dependency> ``` 通过以上介绍,我们可以看到Maven 3.0在项目管理和构建过程中扮演着重要角色,其改进和特性极大地简化了Java开发者的日常工作。通过熟练掌握Maven,开发者可以高效地...
<artifactId>maven-dependency-plugin <version>2.10 <id>copy-dependencies <phase>compile <goal>copy-dependencies ${project.build.directory}/${project.build.finalName}/WEB-INF/lib ...
<scope>test</scope> </dependency> ``` Maven通过执行不同的生命周期阶段,如`clean`(清理项目)、`compile`(编译源代码)、`test`(运行测试)、`package`(打包应用)和`deploy`(部署应用),帮助开发者...
<scope>system</scope> ${project.basedir}/lib/ojdbc6.jar </dependency> ``` 在上述代码中,`${project.basedir}/lib/ojdbc6.jar`应替换为ojdbc6.jar的实际路径。 关于标签“oralce6 maven”,这里可能有些混淆...
新增Dependency Scope** 新增的Scope如test,允许开发者指定某些依赖只用于测试阶段,避免将不必要的依赖打包到最终的制品中。 **7. 传递依赖与依赖管理** Maven2的传递依赖机制简化了依赖管理,一个项目依赖A,A...
2. **依赖范围(Dependency Scope)**:不同类型的依赖有不同的作用范围,如compile(编译时依赖)、runtime(运行时依赖)、test(仅用于测试)等。 3. **依赖冲突解决(Dependency Resolution)**:Maven遵循“最...
Maven是一种流行的Java项目管理工具,它主要用于构建、报告和文档化项目。Maven使用一种叫做pom.xml的配置文件来管理项目的构建过程、依赖关系、插件等。Maven的中央仓库是包含大量预定义依赖的远程仓库,然而,在...
7. **Dependency Scope (依赖范围)** - Maven 的依赖范围包括 compile、test、provided、runtime、system 和 import。 - 不同的依赖范围决定了该依赖是否会被包含在最终的构建产物中。 8. **排除依赖** - ...
<scope>test</scope> </dependency> ``` 3. **Maven生命周期与构建过程** Maven拥有一个清晰的生命周期,主要包括`clean`、`default`(或`compile`、`package`、`install`、`deploy`)和`site`三大阶段。在...
3. **依赖范围(Dependency Scope)**:依赖可以在不同构建阶段生效,如compile、test、runtime等。 4. **远程仓库(Remote Repositories)**:除了本地仓库,Maven还支持从远程仓库(如Maven Central Repository)...
在压缩包中的“Maven依赖特性”可能包含了一些特定的示例或者配置,用于展示Maven如何处理不同类型的依赖特性,例如:范围(scope,如compile、test等)、排除依赖、强制版本等。通过实际操作这些例子,你可以更深入...
<scope>provided</scope> </dependency> <!-- 添加其他依赖 --> ... ``` ### 四、编写Web应用 在`src/main/java`下创建你的Java类,例如Servlet,实现业务逻辑。在`src/main/webapp/WEB-INF`下编写`web.xml`...
**Maven的依赖范围(Dependency Scope):** 1. `compile`:默认范围,编译时可用,打包时包含。 2. `test`:测试范围,仅在测试时可用,打包时不包含。 3. `runtime`:运行时范围,运行和测试时可用,打包时不包含...
- **依赖管理(Dependency Management)**:Maven 可以自动下载项目所需的第三方库,并管理这些库的版本,避免版本冲突。 - **插件(Plugins)**:Maven 使用插件执行各种构建任务,如编译、测试、打包、部署等。 ...
你可以在`pom.xml`文件中直接添加对应的`<dependency>`标签,指定`groupId`, `artifactId`, `version`,并将`scope`设置为`compile`。这种方式适用于所有开发环境,但需要确保JAR包在项目结构中的正确位置,例如在`...