`
weigang.gao
  • 浏览: 473875 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

依赖范围(5.1)

 
阅读更多

       首先需要知道,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:

      

 

  • 大小: 43.5 KB
分享到:
评论

相关推荐

    Spring 3 Reference中文

    4.5.4.5 各种范围的bean 作为依赖. 65 4.5.5 自定义范围.. 67 4.5.5.1 创建自定义范围 67 4.5.5.2 使用自定义范围 68 4.6 自定义bean 的性质. 69 4.6.1 生命周期回调. 69 4.6.1.1 ...

    华为产品开发项目计划模板 .docx

    本文档的范围包括项目概况、组织结构、依赖关系分析、关键路径分析、技术方法和工具、交付件、工程方案等方面。 3. 工程概况 工程概况是项目计划的基本组成部分,包括项目的背景、目标、范围、时间表、预算等信息...

    详细的软件需求规格说明书,介绍软件需求规格的常见要素

    1.4 产品的范围 1.5 参考文献 2 综合描述 2.1 产品的前景 2.2 产品的功能 2.3 用户类和特征 2.4 运行环境 2.5 设计和实现上的限制 2.6 假设和依赖 3 外部接口要求 3.1 用户界面 3.2 硬件接口...

    Maven权威指南 很精典的学习教程,比ANT更好用

    依赖范围 9.4.2. 可选依赖 9.4.3. 依赖版本界限 9.4.4. 传递性依赖 9.4.4.1. 传递性依赖和范围 9.4.5. 冲突解决 9.4.6. 依赖管理 9.5. 项目关系 9.5.1. 坐标详解 9.5.2. 多模块项目 9.5.3. 项目继承 ...

    软件工程设计报告(例子).doc

    依赖软件 3 2.3.3. 开发环境 3 2.4. 系统安装 3 2.5. 系统启动 5 2.6. 系统退出 5 3. 关键技术 6 3.1. B/S模式技术点 6 3.2. SSH框架技术点 7 3.3. JDBC技术点 8 4. 结构设计 10 5. 数据库设计 12 5.1. 数据表设计 ...

    C语言编程规范PPT.pptx

    例如,规则2.2规定源代码只能采用/*…*/风格的注释,规则5.1规定内部或外部的标识符的识别都不能依赖于31个字符之后的差异。 本资源提供了C语言编程规范的详细信息,强调了遵守编程规范的重要性,以避免软件缺陷...

    程序设计语言编译原理 (陈火旺)

    5.1 自下而上分析基本问题 5.1.1 归约 5.1.2规范归约简述 5.1.3符号栈的使用与语法树的表示 5.2算符优先分析 5.2.1算符优先文法及优先表构造 5.2.2算符优先分析算法 5.2.3优先函数 5.2.4算符优先分析中的...

    文献阅读6-Entity-Relation Extraction as Multi-turn Question Answering(实体关系联合抽取,层次标签依赖关系,multi-turn QA)

    数据集和任务3.1别人的数据集3.2我们建立的数据集RESUME4.Model4.1概述4.2生成问题4.3通过MRC来获取答案范围4.4 强化学习5.实验5.1RESUME结果5.2 其他结果6 Ablation Studies6.2问题生成策略的影响6.2联合训练的影响...

    Java测试新技术TestNG和高级概念.part1

    5.1 Spring 5.2 Guice 5.3 DbUnit 5.4 HtmlUnit 5.5 Selenium 5.6 Swing UI测试 5.7 针对画图代码的测试 5.8 持续集成 5.9 本章小结 第6章 扩展TestNG 6.1 TestNG API 6.2 BeanShell 6.3 方法选择器 6.4 Annotation...

    Java测试新技术TestNG和高级概念.part2

    5.1 Spring 5.2 Guice 5.3 DbUnit 5.4 HtmlUnit 5.5 Selenium 5.6 Swing UI测试 5.7 针对画图代码的测试 5.8 持续集成 5.9 本章小结 第6章 扩展TestNG 6.1 TestNG API 6.2 BeanShell 6.3 方法选择器 6.4 Annotation...

    maam:遵循AAM方法论的静态分析单子方法

    要初始化cabal沙箱(将位于当前目录中)并安装所需的依赖项,请运行: make sandbox我的阴谋文件中没有包含依赖关系范围。 如果您在寻找合适的边界时遇到麻烦,请使用以下ghc和cabal软件包的版本。 base=4.7.0.2...

    ABP开发指南

    2.4.3 设置范围 34 2.4.4 获取设置值 35 2.4.5 更改设置 36 2.4.6 关于缓存 36 3 ABP领域层 37 3.1 ABP领域层—实体 37 3.1.1 实体类 37 3.1.2 接口约定 38 3.1.3 IEntity接口 41 3.2 ABP领域层—仓储 42 3.2.1 ...

    时间序列数据平稳性检验实验指导.pdf

    如果一个随机过程的均值和方差在时间过程上都是常数,并且在任何两时期的协方差值仅依赖于该两个时期间的间隔,而不依赖于计算这个协方差的实际时间,就称它是宽平稳的。 三、实验内容及要求 1. 实验内容: 使用 ...

    面向对象系统分析与设计课件及复习资料

    5.1 对象类图 5.1.1 对象类 5.1.2 属性 5.1.3 操作 5.2 对象类的关联 5.2.1 对象类的关联 5.2.2 自返关联、二元关联与n元关联 5.2.3 关联的约束 5.3 聚合与组合 5.3.1 聚合 5.3.2 组合...

    UML与系统分析设计

    5.1 对象类图 5.1.1 对象类 5.1.2 属性 5.1.3 操作 5.2 对象类的关联 5.2.1 对象类的关联 5.2.2 自返关联、二元关联与N元关联 5.2.3 关联的约束 5.3 聚合与组合 5.3.1 聚合 5.3.2 组合...

    AlamofireNetworkActivityIndi​​cator:使用Alamofire控制iOS上网络活动指示器的可见性

    特征 自动管理活动指示器可见性 延迟计时器以减轻闪烁 可以支持URLSession管理的URLSession实例 综合测试范围要求iOS 10.0以上Xcode 11+ 迅捷5.1+依存关系沟通如果需要帮助,请使用 。 (标记为“ alamofire”) ...

    时间序列分析实验平稳性.doc

    如果一个随机过程的均值和方差在时间过程上都是常数,并且在任何两时期的协方差值仅依赖于该两个时期间的间隔,而不依赖于计算这个协方差的实际时间,就称它是宽平稳的。 三、实验内容及要求: 1. 实验内容: ...

    luchia:用于CouchDB的Lua API

    与Lua 5.1、5.2、5.3、5.4兼容100%单元测试覆盖率注意:1.x分支不再维护。 它与CouchDb 2.x和更早版本兼容。安装: 建议安装软件包管理器,因为通过此方法可以轻松安装所有必需和可选的依赖项。需要lua-cjson ...

    alfresco-systemmessages

    描述该项目包含一些工具,用于向用户显示系统范围内的消息。 系统停机进行维护时的示例用法 根据优先级,消息将使用不同的颜色。结构该项目由打包为jar文件的存储库模块和共享模块组成。建筑与安装该生成会生成几个...

Global site tag (gtag.js) - Google Analytics