1、常见的命令

  • Compile
  • Test
  • Package
  • Install
  • Deploy
  • Clean

2、坐标的书写规范

  • groupId 公司或组织域名的倒序
  • artifactId 项目名或模块名
  • version 版本号

3、如何添加坐标

  • 在本地仓库中搜索
  • 互联网上搜,推荐网址 http://www.mvnrepository.com/

4、依赖范围

  • Compile
  • Test
  • Runtime
  • Provided

5、依赖调解

  • 第一声明者优先原则

我们会发现这两个 jar 包同时都依赖了 spring-beans,在 pom 文件定义依赖,先声明的依赖为准。

但是spring-webmvc 依赖 spirng-beans-4.2.4,spring-context 依赖 spring-beans-5.0.2,但是发现

spirng-beans-4.2.4 加入到工程中 而我们希望 spring-beans-5.0.2 加入工程。这就造成了依赖冲突。解决依赖冲突有以下原则:

测试:
        如果将上边 spring-webmvc 和 spring-context 顺序颠倒,系统将导入 spring-beans-5.0.2。
        分析:
        由于 spring-webmvc 在前边以 spring-webmvc 依赖的 spring-beans-5.0.2 为准,所以最终spring-beans-5.0.2 添加到了工程中。

  • 路径近者优先原则

    例如:还是上述情况,spring-contex 和 spring-webmvc 都会传递过来 spirng-beans,那如果直接把 spring-beans 的依赖直接写到 pom 文件中,那么项目就不会再使用其他依赖传递来的 spring-beans,因为自己直接在 pom 中定义 spring-beans要比其他依赖传递过来的路径要近。在本工程中的 pom 中加入 spirng-beans-5.0.2 的依赖,根据路径近者优先原则,系统将导入spirng-beans-5.0.2:
  • 排除依赖

上边的问题也可以通过排除依赖方法辅助依赖调解,如下:
         比如在依赖 spring-webmvc 的设置中添加排除依赖,排除 spring-beans,
         下边的配置表示:依赖 spring-webmvc,但排除 spring-webmvc 所依赖的 spring-beans。

6、版本锁定

面对众多的依赖,有一种方法不用考虑依赖路径、声明优化等因素可以采用直接锁定版
         本的方法确定依赖构件的版本,版本锁定后则不考虑依赖的声明顺序或依赖的路径,以锁定
         的版本的为准添加到工程中,此方法在企业开发中常用。
         如下的配置是锁定了 spring-beans 和 spring-context 的版本:

可以把版本号提取出来,使用<properties>标签设置成变量。

注意:在工程中锁定依赖的版本并不代表在工程中添加了依赖,如果工程需要添加锁定版本
         的依赖则需要单独添加<dependencies></dependencies>标签,如下:

上边添加的依赖并没有指定版本,原因是已在<dependencyManagement>中锁定了版本,
         所以在<dependency>下不需要再指定版本。

最新文章

  1. canvas导出图片方法总结
  2. Python目录操作
  3. HTTPS and the TLS handshake protocol阅读笔记
  4. Gearman 安装使用教程
  5. tomcat登陆WEB显示无权限问题&amp;&amp; tomcat无限循环启动问题
  6. C3P0连接池详细配置
  7. MongoDB初探系列之二:认识MongoDB提供的一些经常使用工具
  8. acdream 1222 Quantization Problem [dp]
  9. BZOJ两水题连发~(BZOJ1854&amp;&amp;BZOJ1191)
  10. python超简单的web服务器
  11. 在CentOS6上编译安装实现LAMP(php-modules)+phpMyAdmin安装过程全记录
  12. SpringBoot打包成war
  13. CF1033G Chip Game
  14. MySQL查询缓存总结
  15. 学习笔记TF054:TFLearn、Keras
  16. loadrunner&#160;脚本开发-调用java&#160;jar文件远程操作Oracle数据库测试
  17. Laravel $request添加数据或数据修改
  18. bzoj 2806 [Ctsc2012]Cheat——广义后缀自动机+单调队列优化DP
  19. lvalue &amp; rvalue
  20. Extjs4.x Ext.tree.Panel 过滤Filter以及trigger field的使用

热门文章

  1. web项目中使用火狐浏览器导出文件时文件名乱码
  2. IntelliJ IDEA错误: 源值1.5已过时,将在未来所有版本中删除
  3. ProceedingJoinPoint 某些方法记录一下
  4. 本地显示Linux服务器的GUI程序
  5. 动态REM
  6. redis系列:分布式锁
  7. 认识PHP8
  8. .NET 云原生架构师训练营(模块二 基础巩固 MongoDB API重构)--学习笔记
  9. 短信平台开发,G客短信系统功能介绍
  10. 如果生成allure报告过程中报错AttributeError: module &#39;allure&#39; has no attribute &#39;severity_level&#39;