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本地仓库中)

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

相关推荐
一川死水36 分钟前
JFinal整合Websocket
java·websocket·jfinal
小王不会写code1 小时前
Tomcat端口号被占用
java·tomcat·intellij-idea
OEC小胖胖1 小时前
MyBatis系统学习(四)——MyBatis的关联映射和缓存机制
java·后端·学习·缓存·mybatis·web
firepation1 小时前
SpringBoot - 基于 Java的超市进销存系统
java·spring boot·后端
冒泡的肥皂1 小时前
java表格识别PaddleOcr总结
java·后端·百度飞桨
尘浮生2 小时前
Java项目实战II基于Java+Spring Boot+MySQL的房屋租赁管理系统的设计与实现
java·开发语言·数据库·spring boot·后端·mysql·spring
程序猿阿伟2 小时前
《C++魔法:零开销实现抽象工厂模式》
java·c++·抽象工厂模式
一朵忽明忽暗的云2 小时前
【SSM-Day2】创建SpringBoot项目
java·spring boot·后端
余华余华2 小时前
Hello,Spring Boot...
java·spring boot·mysql