Maven

什么是Maven

maven是管理和构建java的工具


Maven的作用

依赖管理

方便快捷导入jar包,避免版本冲突问题。无需再手动导入jar包

在maven工程中的pom.xml文件中直接导入jar包并且可以自由切换版本,无需再手动导入

统一项目结构

maven工程生成标准结构在任何java编译器中都可以使用

标准化项目构建方式

通过maven给的指令能够快速完成项目的操作


认识maven

maven在安装第三方依赖的时候会走

本地仓库 -> 远程仓库(可能不存在)-> 中央仓库

下载maven

https://maven.apache.org/download.cgi

配置maven

复制代码
<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

配置完成后cmd中输入mvn -v。看到版本号就说明配置成功了

创建maven工程

首先在全局设置中配置我们下载的Maven

新建maven项目

点击新增项目,选择Maven然后点击创建

生成结构如下

pxm.xml文件格式如下

复制代码
// 项目坐标
<groupId>org.example</groupId>
<artifactId>Maven</artifactId>
<version>1.0-SNAPSHOT</version>

// jdk版本
<properties>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

什么是Maven坐标

资源的唯一表示。坐标可以用来定义项目和引入第三方依赖

复制代码
    <groupId>org.example</groupId>		// 定义当前maven项目隶属组织名称
    <artifactId>Maven</artifactId>		// 定义当前maven项目名称
    <version>1.0-SNAPSHOT</version>		// 定义当前版本号

依赖管理

依赖就是指项目运行中所需要的jar包,一个项目可以有多个依赖

依赖配置

导入第三方依赖(jar包)

复制代码
<dependencies>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>
	
	...
</dependencies>

依赖传递

maven中的依赖具有传递性。如果a项目依赖b项目。我们在依赖a项目的时候会自动依赖b项目

上述例子中我们只依赖了一个项目但是同是会依赖他下面的所有项目

排除依赖

如果我们不需要某个依赖下的依赖我们可以排除

复制代码
<dependencies>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
            </exclusion>
	
			...
        </exclusions>
    </dependency>
	
	...
</dependencies>

可以看到我们指定的依赖就被排除了

依赖范围

依赖默认可以在main,text,package文件下使用

我们可以通过scope来配置在什么环境下生效

复制代码
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
<scope>test</scope>

生命周期

maven的生命周期就是对所有maven构建项目过程的抽象

maven的生命周期是各自独立的

1. clean

清理工作

2. default

核心工作,比如编译,测试,打包,部署,安装...

3. site

生成报告,发布站点

clean: 移除上一次构建生成的文件(默认target文件)

compile:编译项目代码(默认target文件)

text:使用合适的单元进行测试(执行text文件)

package:将编译好的代码打包,jar/war...包(jar包打包到target文件下)

install:安装项目到本地仓库(将jar包安装到maven本地仓库中)

注意我们在执行某个指令,他之前的指令也会被执行。同上

相关推荐
Dolphin_Home21 小时前
笔记:SpringBoot静态类调用Bean的2种方案(小白友好版)
java·spring boot·笔记
MetaverseMan1 天前
Java虚拟线程实战
java
浪潮IT馆1 天前
Tomcat运行war包的问题分析与解决步骤
java·tomcat
悟能不能悟1 天前
Caused by: java.sql.SQLException: ORA-28000: the account is locked怎么处理
java·开发语言
_院长大人_1 天前
MyBatis Plus 分批查询优化实战:优雅地解决 IN 参数过多问题(实操)
java·mybatis
C雨后彩虹1 天前
机器人活动区域
java·数据结构·算法·华为·面试
a3158238061 天前
Android Framework开发知识点整理
android·java·linux·服务器·framework·android源码开发
毕设源码-朱学姐1 天前
【开题答辩全过程】以 个人健康管理系统为例,包含答辩的问题和答案
java·spring boot
局外人Inside1 天前
PostProcessingBeanDeserializer 使用指南
java