2019独角兽企业重金招聘Python工程师标准>>>

maven的dependency参数

scope的分类
1.compile:默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去

2.test:依赖项目仅仅参与测试相关的工作,包括测试代码的编译和执行,不会被打包,例如:junit

3.runtime:表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过了编译而已。例如JDBC驱动,适用运行和测试阶段

4.provided:打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是打包阶段做了exclude操作

5.system:从参与度来说,和provided相同,不过被依赖项不会从maven仓库下载,而是从本地文件系统拿。需要添加systemPath的属性来定义路径

6.import(only available in Maven 2.0.9 or later):这个是maven2.0.9版本后出的属性,import只能在dependencyManagement的中使用,能解决maven单继承问题,import依赖关系实际上并不参与限制依赖关系的传递性。

使用import scope解决maven继承(单)问题

scope的依赖传递
A依赖B,B依赖C。当前项目为A,只当B在A项目中的scope,那么c在A中的scope是如何得知呢?

当C是test或者provided时,C直接被丢弃,A不依赖C;(排除传递依赖)

否则A依赖C,C的scope继承与B的scope

Maven的生命周期

clean:有问题,多清理!
package:打成Jar or War包,会自动进行clean+compile
install:将本地工程Jar上传到本地仓库
deploy:上传到私服

关于scope依赖范围

既然,Maven的生命周期存在编译、测试、运行这些过程,那么显然有些依赖只用于测试,比如junit;有些依赖编译用不到,只有运行的时候才能用到,比如mysql的驱动包在编译期就用不到(编译期用的是JDBC接口),而是在运行时用到的;还有些依赖,编译期要用到,而运行期不需要提供,因为有些容器已经提供了,比如servlet-api在tomcat中已经提供了,我们只需要的是编译期提供而已。

compile:默认的scope,运行期有效,需要打入包中。
provided:编译期有效,运行期不需要提供,不会打入包中。
runtime:编译不需要,在运行期有效,需要导入包中。(接口与实现分离)
test:测试需要,不会打入包中。
system:非本地仓库引入、存在系统的某个路径下的jar。(一般不使用)

转载于:https://my.oschina.net/u/3098425/blog/2870317

maven scope 属性和生命周期相关推荐

  1. maven详解之生命周期与插件

    Maven是一个优秀的项目管理工具,它能够帮你管理编译.报告.文档等. Maven的生命周期: maven的生命周期是抽象的,它本身并不做任何的工作.实际的工作都交由"插件"来完成 ...

  2. Maven(2)--生命周期以及插件目标

    maven的生命周期 maven的生命周期是抽象的,它本身并不做任何的工作.实际的工作都交由"插件"来完成.这种思想和设计模式中的模板方式. maven内置的生命周期: maven ...

  3. Maven补全之生命周期(Lifecycle)

    Maven补全之生命周期(Lifecycle) Maven生命周期基础概念 Maven是基于生命周期构建的,一个Maven项目的构建是已经被清晰定义的过程. 对于我们使用Maven构建项目来说,POM ...

  4. 第9章 maven的插件和生命周期

    第9章 maven的插件和生命周期 本章介绍了maven生命周期.插件以及如何配置插件 9.1 生命周期 一般的项目都会经历这几个步骤:编译,测试,打包,部署,有些公司是手动方式,有些是自动化脚本方式 ...

  5. Maven入门-6-Maven的生命周期和核心命令详细介绍

    本篇来介绍Maven的生命周期和前面介绍过几个命令的详细介绍过程.先介绍生命周期,生命周期中不同阶段就包括了一些命令,所以理解了生命周期,再来看看每一个命令的详细使用过程. 1.Maven的生命周期分 ...

  6. spring— Bean标签scope配置和生命周期配置

    scope配置 singleton 默认值,单例的 prototype 多例的 request WEB 项目中,Spring 创建一个 Bean的对象,将对象存入到 request 域中 sessio ...

  7. maven的仓库、生命周期与插件

    一.仓库 统一存储所有Maven项目共享的构建的位置就是仓库. 仓库分为本地仓库和远程仓库.远程仓库又分为中央仓库(中央仓库是Maven核心自带的远程仓库),伺服(另一种特殊的远程仓库,为节省宽带和时 ...

  8. maven自带clean_Maven生命周期(示例代码)

    简单了解 Maven的生命周期就是对所有的构建过程进行抽象和统一.包含了项目的清理.初始化.编译.测试.打包.集成测试.验证.部署和站点生成等几乎所有的构建步骤. Maven的生命周期是抽象的,即生命 ...

  9. Vue第四章 过滤器、组件、插槽、props组件属性、生命周期、监听器(内含详细代码解释)

    目录 一.过滤器 二.组件 三.插槽 四.props组件属性 五.生命周期 六.监听器 每日一句 一.过滤器 新的配置项 filters: 用于存放过滤器, 配合 {{ value | 过滤器 }} ...

最新文章

  1. uniapp自定义导航栏样式,自定义导航栏组件使用说明,兼容小程序和H5及各端
  2. 文巾解题 1556. 千位分隔数
  3. 频谱分析幅值单位_案例分享丨某水泥厂入窑斗提减速机不对中故障分析及处理...
  4. 十年架构师详解JVM运行原理
  5. 【飞秋】Android开发——NDK开发入门
  6. 搞定ReentrantReadWriteLock 几道小小数学题就够了
  7. javascript中call和apply的区别
  8. 怎么看vray渲染进度_3dmax如何渲染光子,为什么会卡光子呢?
  9. 安装 mysql 数据库_小水谈Mysql数据库---Mysql安装
  10. 学习Cocos2d的博客 --推荐
  11. js替换问题replace和replaceAll
  12. oracle getpy,拼音
  13. 波的散射,孔金瓯等著三卷本书籍目录
  14. 软件环境常识 --dev sit uat
  15. Domoticz添加实时天气信息显示
  16. 惠普电脑锁屏快捷键怎么设置?
  17. OSChina 周二乱弹 ——人和人之间的关系用通话时间来表述
  18. 数字SOC设计之低功耗之线性稳压器(LDO)
  19. TiDB Server
  20. 华强北耳机值得买吗?质量怎么样?靠谱吗?深度拆解悦虎二代1562m耳机!

热门文章

  1. ThinkCMF 和 OneThink内容管理系统对比
  2. 终于知道PUBWIN2009的数据库用户名与密码已经成功连接
  3. C++中引用和指针的不同
  4. 分布式锁(一) Zookeeper分布式锁
  5. QT学习笔记之QTableView设置属性的方法
  6. HDU 1003——Max Sum(动态规划)
  7. 分布式入门之3:副本控制
  8. 由浅入深:自己动手开发模板引擎——解释型模板引擎(二)
  9. 互联网音乐还有什么机会
  10. 股权分配中的三种定时炸弹