Javaweb学习路线(2)——Maven

一、概念
Maven 是 apache 旗下的一个开源项目,是一款用于管理和构建java项目的工具。

二、作用

  • 依赖管理: 动态管理jar包,避免版本冲突。
  • 统一项目结构: 提供标准、统一的项目结构。
  • 项目构建: 标准跨平台的自动化项目构建方式。

Maven创建的项目结构

在这里插入图片描述
三、使用

(一)官方网站: https://maven.apache.org/
(二)Maven库: https://mvnrepository.com/
(三)Maven构建项目图
在这里插入图片描述
其中,仓库分为本地仓库,中央仓库,远程仓库三种

  • 本地仓库: 存储在本机上的maven目录
  • 中央仓库: 由Maven团队维护的全球唯一的。仓库地址:https://repo1.maven.org/maven2/
  • 远程仓库: 一般是由公司团队搭建的私有仓库。

(四)安装使用
1、解压apache-maven-3.6.1-bin.zip。
2、配置本地仓库:修改 conf/setting.xml 中的 为一个指定目录。

<localResponsitory>maven压缩位置\mvn_repo</localResponsitory>

3、配置阿里云镜像:修改conf/setting.xml 中的 <mirrors> 标签,为其添加子标签。

<mirror>
	<id>alimaven</id>
	<name>aliyun maven</name>
	<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
	<mirrorOf>central</mirrorOf>
</mirror>

4、配置环境变量:MAVEN_HOME 为maven的解压目录,将bin目录加入PATH环境变量。

四、IDEA集成Maven

(一)配置Maven环境(局部)

  • 1、选择IDEA菜单File - Setting - Build, Excution, Deployment - Build Tools - Maven
  • 2、设置IDEA使用本地安装的Maven,并修改配置文件及本地仓库路径
    在这里插入图片描述
    3、查看JRE版本以及字节码版本是否为当前版本在这里插入图片描述
    在这里插入图片描述
    (二)全局配置Maven环境
    在这里插入图片描述
    Maven坐标的组成: gourpId+artifactId+version
  • gourpId:定义当前Maven项目隶属组织名称(通常为域名反写,例如com.baidu)
  • artifactId:定义当前Maven项目名称(通常是模块名,例如order-service、goods-service)
  • version:当前项目版本号

(三)导入Maven项目

注意:一定是导入pom.xml文件,而不是整个文件。

在这里插入图片描述
五、依赖配置

(一)依赖: 指当前项目运行所需要的jar包,一个项目可以引入多个依赖。
(二)配置:

  • 1、在pom.xml编写 <dependencies> 标签
  • 2、在<dependencies> 标签内 使用 <dependency> 引入坐标
  • 3、定义坐标的groupId,artifactId,version
  • 4、刷新Maven,引入最新坐标
    <dependencies>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

当没有刷新时引用新依赖图

在这里插入图片描述

刷新后引用新依赖图

在这里插入图片描述
六、依赖传递

(一)概念: 依赖传递指的是当前依赖引用的某个依赖中含有多个其它依赖时,则另外未在当前依赖声明的依赖也被加载。(父依赖没有这个插件,子依赖怎么会有呢?)

(二)排除依赖: 主动断开依赖资源,被排除的资源无需指定版本。(在本人看来,排除依赖非常的麻烦,因为需要知晓子依赖有什么依赖,并且还要根据需要排除依赖)使用 <exclusions>-<exculusion>进行排除。

七、依赖范围

(一)依赖的范围: 依赖默认范围为main,即主程序有效,通过 <scope>…<scope> 设置范围。

范围 说明 范例
compile 任意程序中都有效(默认) log4j
test 测试程序有效 junit
provided 主程序和测试程序有效 servlet-api
runtime 运行程序和打包程序有效 jdbc驱动

八、依赖的生命周期

(一)概念: 依赖的生命周期是为了对所有的Maven项目构建过程进行抽象和统一。

(二)相互独立的生命周期

生命周期 说明
clean 清理工作
default 核心工作。例如:编译、测试、打包、安装、部署等
site 生成报告、发布站点等

(三)重要生命周期阶段(执行顺序排列)

  • clean周期
    • clean阶段: 移出上次构建生成的文件(例如字节码文件等等)
  • default周期
    • complile阶段: 编译项目源代码
    • test阶段: 使用合适的单元测试框架进行测试(Junit)
    • package阶段: 将编译后的文件打包。例如jar、war
    • install阶段: 安装项目到本地仓库

(四)执行生命周期

  • 方法一:IDEA集成了依赖的生命周期,所以可以直接打开Maven-Lifecycle-选择生命周期。
  • 方法二:命令行:输入命令 【mvn complie】

猜你喜欢

转载自blog.csdn.net/Zain_horse/article/details/131151996