依赖配置

依赖指当前项目运行所需的jar,一个项目可以设置多个依赖,在pom.xml中格式如下

 <!--设置当前项目所依赖的所有jar-->
<dependencies>
<!--设置具体的依赖-->
<dependency>
<!--依赖所属群组id-->
<groupId>junit</groupId>
<!--依赖所属项目id-->
<artifactId>junit</artifactId>
<!--依赖版本号-->
<version>4.12</version>
</dependency>
</dependencies>

依赖传递

依赖具有传递性

◆直接依赖:在当前项目中通过依赖配置建立的依赖关系

◆间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源

依赖传递冲突问题:

路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高,如junit在2度和3度都出现,优先采用2度的版本。

声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的,如junit在2度都出现,就看他们的上一级谁先配置,哪个先就采取哪个。

特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的,如在同一个pom.xml文件中出现了同一个junit,优先采用后面的那个版本。

可选依赖

可选依赖指对外隐藏当前所依赖的资源一一不透明,但实际存在。使用方式:把optional设置为true.

		<dependency>
<!--依赖所属群组id-->
<groupId>junit</groupId>
<!--依赖所属项目id-->
<artifactId>junit</artifactId>
<!--依赖版本号-->
<version>4.12</version>
<optional>true</optional>
</dependency>

排除依赖

排除依赖指主动断开依赖的资源,被排除的资源无需指定版本一一不需要

		<dependency>
<!--依赖所属群组id-->
<groupId>junit</groupId>
<!--依赖所属项目id-->
<artifactId>junit</artifactId>
<!--依赖版本号-->
<version>4.12</version>
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
</exclusions>
</dependency>

依赖范围

依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围

●作用范围

◆主程序范围有效(main文件夹范围内)

◆测试程序范围有效(test文件夹范围内)

◆是否参与打包(package指令范围内)

依赖范围的传递性(了解)

带有依赖范围的资源在进行传递时,作用范围将受到影响

生命周期

项目构建生命周期

Maven构建生命周期描述的是一次构建过程经历经历了多少个事件

●Maven对项目构建的生命周期划分为3套

◆clean:清理工作

◆default:核心工作,例如编译,测侧试,打包,部署等

◆site:产生报告,发布站点等

插件

1.插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件功能

2.默认maven在各个生命周期上绑定有预设的功能

3.通过插件可以自定义其他功能

例如:下面这段代码的意思是:在generate-test-resources这个阶段,设置打包方式为jar包。

<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
<phase>generate-test-resources</phase>
</execution>
</executions>

黑马maven学习笔记。

最新文章

  1. CodeAtlas For Sublime Text
  2. django错误-NoReverseMatch at /admin/
  3. Application Pool
  4. Javascript到PHP加密通讯的简单实现
  5. 2015安徽省赛 J.镜像树
  6. Wordpress更改后台地址
  7. 《View Programming Guide for iOS》之frame、bounds和center之间的关系
  8. C# Access DBHelp
  9. android手机ping不通linux的ip地址
  10. ecshop以幻灯版调用首页主广告显示
  11. android系统的图片资源
  12. Hash Table Performance in R: Part I(转)
  13. kotlin成长之路
  14. [HNOI2001]矩阵乘积
  15. TCP的发送系列 — tcp_sendmsg()的实现(二)
  16. 为什么二流程序员都喜欢黑php?
  17. anaconda + VSCode + 生产环境配置
  18. 石板地面 Base Shape
  19. Itween的代码使用方法 - 01
  20. VNC远程连接阿里云Linux服务器 图形界面

热门文章

  1. JAVA语言学习-面向对象(1)
  2. JVM运行时数据区域详解
  3. WebKit策略:&lt;foreignObject&gt;可用于绘制svg中的html标签,但与&lt;use&gt;搭配不生效
  4. Python用yield form 实现异步协程爬虫
  5. 嵌入式-C语言基础:怎么样使得一个指针指向固定的区域?
  6. dlv远端调试go的问题
  7. 支持 equals 相等的对象(可重复对象)作为 WeakHashMap 的 Key
  8. 6个tips缓解第三方访问风险
  9. Python Excel 处理模块 : OpenPyXL
  10. loadrunner11安装时提示缺少Microsoft Visual c++2005 sp1组件的解决办法