java面试题网

普通会员

160

帖子

12

回复

165

积分

楼主
发表于 2019-08-26 15:24:39 | 查看: 5124| 回复: 1

Maven 依赖管理

Maven 依赖管理

说完生命周期,还有一个必须要说的就是依赖管理了。Maven 中是通过在 pom.xml 中添加依赖从而来引入 jar 包的。其原理是:每一个 jar 都会有独立的坐标,Maven 就是通过坐标来定位到具体的 jar 的。就好像平面坐标系一样,通过 x 轴 和 y 轴定位一个坐标点。Maven 定义了这样一组规则:世界上任何一个构件都可以使用 Maven 坐标唯一标识。

Maven 坐标组成

  • groupId: 定义当前 Maven 项目隶属的实际项目
  • artifactId: 该元素定义实际项目中的一个 Maven 项目或模块
  • version: 该元素定义 Maven 项目当前所处的版本
  • packaging: 该元素定义 Maven 项目的打包方式
  • classifier: 该元素用来帮助定义构建输出的一些附属构件

注:groupId、artifactId、version、packaging 是必须定义的,classifier 是不能被直接定义的,因为附属构件不是项目直接默认生成的,而是由附加的插件帮助生成的。

  • 依赖完整格式

Maven 依赖管理_www.wityx.com

只要我们提供正确的坐标元素,Maven 就能够找到它

依赖配置详解

一个依赖( )的声明可以包含以下元素:

Maven 依赖管理_www.wityx.com

依赖作用域(范围)

Maven 依赖管理_www.wityx.com

传递性依赖

Maven 依赖管理_www.wityx.com

获取依赖

有的人可能会有疑问,以前没有 Maven 的时候,我们可以去各自的官网下载 jar,但现在只能通过 pom 引用 jar。那么如何知道需要添加哪些依赖呢?还有需要什么版本呢? 这也是为什么有一部分习惯了自己下载 jar,而到了 Maven 这不知道该怎么用了。

当然,Maven 还不是智能的,你不可能直接命令 Maven 直接给你找项目所需要的各种组件,或许以后这样的智能化的软件管理工具会出现,至少现在还没有。因此,还得需要你自己去添加 pom 依赖。至于该如何找,这里我告诉大家一个方法,虽然方法有点笨, 但或许对你快速定位到具体组件有所帮助。

举个例子,假如现在需要添加 Spring 的依赖,但具体哪个版本呢,可以先不用管,直接去Baidu 或者 Google,以“ maven servlet repository ”为关键字搜索,往往第一个链接中,就是你需要的方案。

1、地址

http://mvnrepository.com/

2、资源搜索

Maven 依赖管理_www.wityx.com

Maven 依赖管理_www.wityx.com

依赖选择原则通常为相对比较新,同时被使用比较多的正式发行版(release 版)

复制依赖

从网页中的 maven 选项卡中复制依赖信息到自己的 pom.xml 中

Maven 依赖管理_www.wityx.com

当然,这只是一种方法,只针对刚接触 Maven 的童鞋们。随着项目经验的增多,以后你就会越来越发现,Maven 解放的不仅仅是你的双手,还有你最宝贵的时间。

常用依赖

参见《常用依赖.xml》


文章来自www.wityx.com,转载请注明出处!原文地址http://www.wityx.com/post/967_1_1.html


java面试题交流群:327440556

普通会员

115

帖子

83

回复

167

积分
沙发
发表于 2019-09-27 16:59:28

Maven 常见的六种依赖范围
1.compile:编译依赖范围(默认),对其三种都有效
2.test:测试依赖范围,只对测试classpath有效
3.runtime:运行依赖范围,只对测试和运行有效,编译主代码无效,例如JDBC
4.provided:已提供依赖范围,只对编译和测试有效,运行时无效,例如selvet-api
5.system:系统依赖范围.谨慎使用.例如本地的,maven仓库之外的类库文件
6.import(maven2.0.9以上):导入依赖范围,不会对其他三种有影响 

您需要登录后才可以回帖 登录 | 立即注册

java面试题网www.wuliaokankan.cnjava建站系统提供技术支持V2.1 网站地图 © 2016-2018