Maven工具的一些必备知识点


本文记录Maven相关的知识点。

一、maven安装

1.下载
官方下载地址:http://maven.apache.org/download.cgi

2.安装
直接解压后放在磁盘目录中即可;

3.配置环境变量
(如果是mac,参考https://www.jianshu.com/p/7931f13a53fb)
在这里插入图片描述
添加path:
在这里插入图片描述

二、Maven Scope

scope定义了类包在项目的使用阶段。项目阶段包括: 编译,运行,测试和发布。

分类说明:

compile
默认scope为compile,表示为当前依赖参与项目的编译、测试和运行阶段,属于强依赖。打包之时,会打到包里去。

  • 对主程序是否有效:有效
  • 对测试程序是否有效:有效
  • 是否参与打包:参与

test
该依赖仅仅参与测试相关的内容,包括测试用例的编译和执行,比如定性的Junit。

  • 对主程序是否有效:无效,主程序看不到test依赖内容;
  • 对测试程序是否有效:有效
  • 是否参与打包:不参与

runtime
依赖仅参与运行周期中的使用。一般这种类库都是接口与实现相分离的类库,比如JDBC类库,在编译之时仅依赖相关的接口,在具体的运行之时,才需要具体的mysql、oracle等等数据的驱动程序。
此类的驱动都是为runtime的类库。

provided
该依赖在打包过程中,不需要打进去,这个由运行的环境来提供,比如tomcat或者基础类库等等;事实上,该依赖可以参与编译、测试和运行等周期,与compile等同。区别在于打包阶段默认进行了exclude操作

  • 对主程序是否有效:有效
  • 对测试程序是否有效:有效
  • 是否参与打包:不参与

system
使用上与provided相同,不同之处在于该依赖不从maven仓库中提取,而是从本地文件系统中提取,其会参照systemPath的属性进行提取依赖。

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

三、常见Maven命令

  • mvn clean :清理项目,运行后,之前target目录被清除
  • mvn compile :编译,产生class文件,也就是target目录
  • mvn clean compile : 清理+编译
  • mvn clean test : 清理+编译+执行测试
  • mvn clean package : 清理+编译+打包
  • mvn clean install : 清理+编译+打包+放置本地仓库
  • mvn clean deploy :清理+编译+打包+放置本仓库+放置远程仓库
  • mvn archetype:generate : 创建项目骨架
  • mvn dependency:list : 查看当前项目的已解析依赖
  • mvn dependency:tree : 查看当前项目的依赖树
  • mvn dependency:analyze : 自动化分析当前项目的依赖

注意:compile->test->package->install->deploy,在执行后边命令时,都是默认从compile开始执行一遍。

四、Settings 文件

1.localRepository
在这里插入图片描述
修改此项配置,指定自己本地maven仓库路径。

2.servers
在这里插入图片描述
指定私服认证信息。

3.mirrors
在这里插入图片描述
指定私服仓库镜像地址。

4.profiles
指定jdk版本等
在这里插入图片描述

五、依赖的传递性/继承

1.A依赖B,B依赖C,那么A也会有C的依赖;

2.非compile作用域的,比如test,不会依赖传递;

3.路径最短者优先原则,A依赖的B,B依赖C,加如B和C都直接依赖了一个common包,但是版本不一样,根据依赖传递性,A会同时依赖两个版本的common包,但是实际上会优先使用B的common,因为B的common包,路径上离A更近。
路径相同时,先声明者优先,就是 dependency 标签在前者,优先。

4.继承时,父工程打打包方式必须为pom;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值