首先需要知道,Maven在编译项目主代码(src/main/java目录下面打代码)的时候需要使用一套classpath(使用mvn compile编译src/main/java目录的下面的java文件)。在上例中,编译项目主代码的时候需要用到spring-core,该文件以依赖的方式被引入到classpath中。
其次,Maven在执行测试(实际上在执行测试的时候也会先执行编译命令)的时候会使用另外一套classpath(使用mvn test会编译src/main/java和src/test/java目录下面的java文件并执行src/test/java下面的测试类)。上例中的JUnit就是一个很好的例子,该文件也以依赖的方式引入到测试使用的classpath中,不同的是这里的依赖范围是test。
最后,实际运行Maven项目的时候,又会使用一套classpath(java命令运行jar),上例中的spring-core需要在该classpath中,而JUnit则不需要。
依赖范围就是用来控制依赖与这三种classpath(编译classpath,测试classpath,运行classpath)的关系。Maven有一下几种依赖范围:
1.compile:编译依赖范围。如果没有指定,就会默认使用该依赖范围。使用此依赖范围的Maven依赖,对于编译,测试,运行三种classpath都有效。spring-core,在编译,测试和运行的时候都需要使用该依赖。
2.test:测试依赖范围。使用此依赖范围的Maven依赖,只对于测试classpath有效,在编译主代码或者运行项目的使用时将无法使用此类依赖。典型的例子是JUnit,它只有在编译测试代码及运行测试的时候才需要。
3.provided:已提供依赖范围。使用此依赖范围的Maven依赖,对于编译和测试classpath有效,但在运行时无效。典型的例子是servlet-api,编译和测试项目的时候需要改依赖,但在运行时候,由于容器已经提供,就不需要Maven重复地引入一遍。
4.runtime:
5.system:
相关推荐
传统的蓝牙技术在定位服务上主要依赖RSSI(接收信号强度指示)进行粗略的距离估计,而蓝牙5.1引入了AoA(角度到达)和AoD(角度出发)功能,通过分析信号到达或出发时的角度,实现室内厘米级的精确定位,这对于零售...
对于一款商业软件而言,如SecureCRT,注册码确保了用户在法律允许的范围内使用软件,避免了非法复制和分发。 描述中的"本人一直使用"表明了该用户对SecureCRT的长期依赖和满意度。这可能是因为SecureCRT提供了稳定...
两种系统都依赖于AC-3解码器将双声道信号还原为5.1声道环绕声。在制作5.1声道环绕声的过程中,首先需要将音频素材分配到不同的声道,然后进行AC-3编码,生成扩展名为AC3的音频文件,该文件可在支持的DVD播放软件上...
ThinkPHP5.1支持模型查询事件、获取器、事务操作、监听器、SQL存储过程、数据集定义、新增更新删除查询、JSON字段获取器、修改器、搜索器、数据集自动时间戳、只读字段、软删除、类型转换以及数据完成查询范围等。...
在 Unicode 5.1 中,码点范围从 U+0000 到 U+10FFFF,共包含约110万个码点。这些码点可以分为多个平面(Plane),其中最基本的平面是 BMP(Basic Multilingual Plane),包含了最常见的字符,码点范围从 U+0000 到 U...
- **评估需求:**明确部署的目标与范围。 - **设计架构:**规划 App-V 架构,包括服务器角色分配、网络拓扑等。 - **测试环境:**在生产环境之前进行全面的测试,确保系统的稳定性和可靠性。 **3. 部署流程** - **...
尽管LabVIEW已经发展到更新的版本,如LabVIEW 2021,但很多旧的系统和项目可能仍依赖于早期的LabVIEW版本,因此LabVIEW 5.1运行时环境在某些情况下仍然具有重要价值。不过,需要注意的是,随着操作系统和硬件的升级...
在Windows系统中,任何使用Lua的程序都需要依赖这个库来运行。lua51.dll提供了包括变量操作、函数调用、表操作在内的所有基本API,使得开发者可以通过C或C++来扩展Lua的功能。 Luac.exe是Lua的编译器,它负责将编写...
2. **配置文件解析**:Snort的配置文件包含了一系列规则和设置,如启用哪些预处理器、指定规则文件、定义网络范围等。深入理解配置文件的语法和各个选项,是正确运行和定制Snort的关键。 3. **规则语言**:Snort...
在进行VMware View 5.1的安装配置之前,首先需要搭建好活动目录(Active Directory, AD)环境,因为后续的很多组件都需要依赖AD来进行认证。 **1. IP配置** - **知识点**:确保所有服务器之间能够正常通信,网络...
- **软件依赖**:安装所需的依赖软件包,比如Perl、Python等,以确保VCS的正常运行。 - **备份**:在安装前备份重要的系统文件和数据,以防万一出现安装失败或其他问题。 #### 六、安装步骤 1. **下载安装包**:从...
1. 提交算法更新:传统的推广方式往往依赖手动操作,耗时且效率低下。新版本的提交算法优化,意味着程序能够更智能地自动发布问题和答案,提高发布速度,减少人工干预,确保信息及时、准确地出现在百度知道平台上,...
ThinkPHP5.1主要特性包括引入容器和Facade支持依赖注入、改进的(对象化)路由支持注解路由和跨域请求、支持配置和路由目录独立、取消系统常量、增强的类库别名机制、模型和数据库的增强、验证类的增强以及模板引擎...
4. **依赖注入**:JdonFramework采用了DI(Dependency Injection)设计模式,通过容器来管理对象的生命周期和依赖关系,降低了对象间的耦合度,使代码更易于测试和维护。 5. **MVC(模型-视图-控制器)**:...
标题中的“802.11n USB Wireless LAN Card_5.1.28.0_8-11-2016_6.1_x64.zip”指的是一个适用于64位Windows操作系统的802.11n标准USB无线网卡的驱动程序更新包。802.11n是IEEE制定的一种无线局域网(WLAN)通信标准,...
- 实现零宕机迁移,无需依赖共享存储配置,可以在整个网络范围内实现vMotion功能,极大地提高了虚拟机迁移的灵活性。 - **零停机的VMware Tools升级**: - 用户可以无缝地升级VMware Tools,无需重启虚拟机,减少...
自动分配通常基于预定义的范围,而DHCP分配则依赖于DHCP服务器,手动分配则允许管理员精确控制每台虚拟机的IP地址,以满足特定的网络需求。 综上所述,VCP5.1考试涵盖了广泛的虚拟化管理和运维知识,从虚拟机性能...
本教程主要涵盖了在Windows Server 2003 SP2环境下安装BXP5.1的详细步骤,包括必要的前置条件和...同时,由于教程未提及,可能还需要安装其他依赖项或进行额外的安全配置,例如防火墙规则的调整,以确保服务正常运行。
- **查询范围**:支持数据查询范围限制。 - **模型输出**:控制模型数据的输出格式。 ##### 10. **关联** - **一对一关联**:定义两个模型之间的一对一关系。 - **一对多关联**:定义两个模型之间的一对多关系。 -...
4. 分析和调试:Reflector不仅提供源代码级别的视图,还支持查看元数据、查看类型关系、跟踪依赖项等高级功能。这使得开发者能够深入理解程序的结构和行为,对于调试和优化代码非常实用。 5. 安全性考虑:尽管...