maven依赖关系中Scope的作用
Dependency Scope
在POM 4中,中还引入了,它主要管理依赖的部署。目前可以使用5个值:
* compile,缺省值,适用于所有阶段,会随着项目一起发布。
当你通过maven clean install 打包的时候,会将此配置的jar包全部打到war包的lib里面。
* provided,类似compile,期望JDK、容器或使用者会提供这个依赖。
比如你使用jboss的jndi方式配置JDBC链接的时候,可以将数据库的驱动包scope设置成这个,平时本地开发还是使用这个,在打包的时候不会将此配置打入war包。
* runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如,你可能在编译的时候只需要JDBC API JAR,而只有在运行的时候才需要JDBC
* test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
例如,junit测试jar包。
* system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它
system范围依赖与provided 类似,但是你必须显式的提供一个对于本地系统中JAR 文件的路径。这么做是为了允许基于本地对象编译,而这些对象是系统类库的一部分。这样的构件应该是一直可用的,Maven 也不会在仓库中去寻找它。如果你将一个依赖范围设置成系统范围,你必须同时提供一个 systemPath 元素。注意该范围是不推荐使用的(你应该一直尽量去从公共或定制的 Maven 仓库中引用依赖)
相关推荐
此外,Maven的依赖范围(scope)如编译(compile)、测试(test)、运行时(runtime)等也会影响依赖的引入。 插件是Maven的强大扩展机制,允许开发人员执行自定义任务。常见的Maven插件有Surefire Plugin用于运行...
【Maven课堂笔记】 在Java开发环境中,IntelliJ IDEA(IDEA)和Eclipse都是常用的集成开发环境,而Maven作为一个项目管理和构建工具,能够帮助开发者管理项目依赖、构建和自动化测试。本笔记主要围绕如何在IDEA和...
Maven 使用笔记 Maven 是一个强大的项目管理和构建工具,广泛应用于Java开发领域。它通过使用一种标准的项目对象模型(Project Object Model, POM),能够自动化处理项目的构建、依赖管理和报告生成。这个笔记将...
### Maven2 使用笔记 #### Maven2简介 Maven2是一个非常强大的开源项目管理与构建工具。它通过一种项目对象模型(Project Object Model, POM)来管理项目的构建、报告和文档。POM是一个XML文件(通常命名为`pom.xml...
**Maven笔记** Maven是Apache组织开发的一款Java项目管理工具,它的主要功能包括项目构建、依赖管理和仓库管理。Maven使得Java开发更加规范和高效,尤其在大型团队协作中,能够有效地解决版本冲突和自动化构建的...
【Maven3实战笔记】 Maven3是一款强大的Java项目管理和集成工具,由Apache软件基金会开发。它通过提供一套标准化的构建、依赖管理和项目信息管理的方式来简化项目的生命周期。本实战笔记将深入探讨Maven3的核心概念...
**Maven学习笔记** 1. **高级特性** - Maven Profiles允许根据环境条件选择不同的配置。 - Inheritance和Aggregation进一步优化POM管理,减少重复配置。 - Maven的远程资源插件可以集成外部资源,如配置文件。 ...
此外,Maven还支持范围(scope)的概念,如`compile`、`runtime`、`test`等,以便在不同阶段使用不同的依赖。 总结来说,Maven通过提供标准化的项目结构、自动化依赖管理和构建流程,使得Java项目的管理更加规范和...
** Maven笔记 ** Maven是Java开发中的一个项目管理和综合工具,它简化了构建、依赖管理和项目的生命周期。本文将深入探讨Maven的核心概念、配置以及如何在实际开发中有效利用它。 ### Maven核心概念 1. **项目...
<scope>test</scope> ``` **Maven的常用命令**包括: - `mvn clean`:清理目标目录,删除构建生成的文件。 - `mvn compile`:编译源代码。 - `mvn test`:运行测试。 - `mvn package`:打包项目,如生成JAR或...
Maven的Dependency Scope定义了依赖项的可见性和应用范围,包括compile、provided、runtime、test和system等。compile是默认的scope,表明依赖项在编译、测试和打包时都需要;provided表示运行时由JDK或容器提供,不...
<scope>import</scope> ``` 其中`<spring-cloud.version>`标签的值会是具体的版本号,如Hoxton.SR11。父工程的groupId、artifactId和version也应该配置妥当。 ### 2. 新建子模块 在父工程下,可以新建多个...
<scope>test</scope> ``` ##### 2.2 配置User Libraries 1. **添加Drools和JUnit库**:在项目的类路径中添加Drools和JUnit库。 2. **建立Drools的UserLibraries**:在IDE中配置UserLibraries,将Drools和...
以下将详细介绍Spring学习笔记中的主要知识点。 **面向抽象编程** 面向抽象编程是一种设计原则,强调在代码中使用接口或抽象类,而不是具体实现类。这使得系统更具有灵活性,易于扩展和维护。在Spring框架中,我们...
### MyBatis狂神说最全笔记解析 #### 一、MyBatis简介 ##### 1.1 什么是MyBatis? MyBatis是一款优秀的持久层框架,它支持自定义SQL查询、存储过程以及高级映射功能。通过使用MyBatis,开发人员可以避免手动编写...