Maven的介绍和使用

Maven的作用

项目构建

依赖管理:避免资源间版本冲突问题

统一开发结构:提供统一的项目结构

Maven的使用

下载完压缩包之后放在合适的目录下,其中apache-maven-3.8.8文件夹是安装的maven,下面的repository是本地仓库,其中要修改setting.xml下的仓库路径,设置阿里云镜像。

将这里的路径改为自己设置的 repository 仓库的路径。

这个<mirror>写在<mirrors>中,在注释里面会有mirror的模板。

Maven项目构建命令

手动创建

使用mvn开头,后面添加功能参数,可以一次执行多个命令,使用空格分隔

mvn compile #编译

mvn clena #清理

mvn test #测试

mvn package #打包

mvn install #安装到本地仓库

插件创建

依赖管理

依赖传递
  • 依赖有传递性
    • 直接依赖:在当前项目中通过配置建立的依赖关系
    • 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源
  • 路径优先:当依赖中出现相同资源时,层级越深,优先级越低,层级越浅,优先级越高
  • 声明优先:当资源在相同层级被依赖时,配置位置靠前的覆盖废纸顺序靠后的
  • 特殊优先:当统计配置了相同层级的不用版本,后配置的覆盖先配置的
可选依赖

对外隐藏当前所依赖的资源------不透明

复制代码
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.9</version>
\<optional\>true\</optional\>
</dependency>
排除依赖

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

复制代码
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.9</version>
    \<exclusions\>
\<exclusion\>
\<groupId\>junit\</groupId\>
\<artifactId\>junit\</artifactId\>
\</exclusion\>
\</exclusions\>
</dependency>
依赖范围

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

作用范围:

  • 主程序范围有效(main文件夹范围内)
  • 测试程序范围有效(test文件夹范围内)
  • 是否参与打包(package指令范围内)

生命周期和插件

clean:清理工作

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

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

插件

  • 插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件功能
  • 默认maven在各个生命周期上有预设的功能
  • 通过插件可以自定义其他功能
相关推荐
南宫生1 小时前
力扣每日一题【算法学习day.132】
java·学习·算法·leetcode
计算机毕设定制辅导-无忧学长1 小时前
Maven 基础环境搭建与配置(一)
java·maven
风与沙的较量丶2 小时前
Java中的局部变量和成员变量在内存中的位置
java·开发语言
m0_748251722 小时前
SpringBoot3 升级介绍
java
极客先躯4 小时前
说说高级java每日一道面试题-2025年2月13日-数据库篇-请说说 MySQL 数据库的锁 ?
java·数据库·mysql·数据库的锁·模式分·粒度分·属性分
程序员侠客行4 小时前
Spring事务原理 二
java·后端·spring
小猫猫猫◍˃ᵕ˂◍4 小时前
备忘录模式:快速恢复原始数据
android·java·备忘录模式
liuyuzhongcc4 小时前
List 接口中的 sort 和 forEach 方法
java·数据结构·python·list
五月茶4 小时前
Spring MVC
java·spring·mvc
sjsjsbbsbsn4 小时前
Spring Boot定时任务原理
java·spring boot·后端