Maven的详细解读和配置

目录

一、Maven

[1.1 引言](#1.1 引言)

[1.2 介绍](#1.2 介绍)

[1.3 下载安装](#1.3 下载安装)

[1.3.1 解压](#1.3.1 解压)

[1.3.2 配置环境变量](#1.3.2 配置环境变量)

[1.3.3 测试](#1.3.3 测试)

[1.4 仓库[了解]](#1.4 仓库[了解])

[1.5 Maven配置](#1.5 Maven配置)

[1.5.1 修改仓库位置](#1.5.1 修改仓库位置)

[1.5.2 设置镜像](#1.5.2 设置镜像)

[二、IDEA - MAVEN](#二、IDEA - MAVEN)

[2.1 idea关联maven](#2.1 idea关联maven)

[2.2 为新项目设置](#2.2 为新项目设置)

[2.2 创建java项目[重点]](#2.2 创建java项目[重点])

[2.3 java项目结构](#2.3 java项目结构)

[2.4 pom](#2.4 pom)

[2.5 导入依赖](#2.5 导入依赖)

[2.5.1 查找依赖](#2.5.1 查找依赖)

[2.5.2 使用依赖](#2.5.2 使用依赖)

[2.6 测试](#2.6 测试)

[2.7 BUG处理](#2.7 BUG处理)

[2.8 经验总结](#2.8 经验总结)


一、Maven

1.1 引言

项目管理问题

项目中jar包资源越来越多,jar包的管理越来越沉重。

繁琐

要为每个项目手动导入所需的jar,需要搜集全部jar

复杂

项目中的jar如果需要版本升级,就需要再重新搜集jar

冗余

相同的jar在不同的项目中保存了多份

项目格式

没有统一

1.2 介绍

Maven这个单词来自于意第绪语(犹太语),意为知识的积累.

Maven是一个基于项目对象模型(POM)的概念的纯java开发的开源的项目管理工具 。主要用来管理java项目,进行依赖管理(jar包依赖管理)和项目构建(项目编译、打包、测试、部署)。此外还能分模块开发,提高开发效率。

1.3 下载安装

网址 Maven -- Download Apache Maven

下载地址 Index of /dist/maven/maven-3 (apache.org)

1.3.1 解压

特别注意: 路径不要有中文路径

复制代码
解压后有几个文件夹
- bin  运行maven命令的脚本
- boot 运行是需要类库
- conf 配置,有关于maven的配置文件
- lib  运行是需要的jar包

1.3.2 配置环境变量

系统变量-创建: MAVEN_HOME 值是maven安装路径

系统变量path添加 %MAVEN_HOME%\bin

1.3.3 测试

打开cmd,输入mvn -v

1.4 仓库[了解]

maven项目管理工具,管理依赖(jar包),实现依赖的复用.


maven有仓库,将依赖(jar包)放入仓库,每个项目都去复用

  • 本地仓库

    • 自己电脑上

    • 需要依赖的时候,会先从本地仓库中找,如果找不到就会去中央仓库找,下载到本地仓库,下次再用就可以从本地仓库找到使用

  • 中央仓库

    • 位于国外服务器,包含绝大部分依赖

    • 可能有时候访问比较慢

  • 公共仓库

    • 私服(个人)

    • 阿里云,网易,等等

1.5 Maven配置

1.5.1 修改仓库位置

maven安装好后,默认本地仓库在c盘,要修改为其他地方


修改maven的配置文件(conf\settings.xml)

复制代码
<!-- 将53行注释内代码,复制出来,粘贴到55行,修改路径为自己本地仓库位置 -->
 <localRepository>D:\repository</localRepository>

ps: 记得保存,ctrl+s

1.5.2 设置镜像

依赖会先从本地仓库找,本地没有会从中央仓库下载到本地仓库,中央仓库访问很慢,所以需要设置国内镜像,访问就很快!

复制代码
<!--setting.xml中添加如下配置 146行附近
 一定是在开闭标签 <mirrors> </mirrors>中间设置
-->
 <mirror>
     <id>aliyun</id>  
     <!-- 中心仓库的 mirror(镜像) -->
     <mirrorOf>central</mirrorOf>    
     <name>Nexus aliyun</name>
     <!-- aliyun仓库地址 以后所有要指向中心仓库的请求,都会指向aliyun仓库-->   
     <url>http://maven.aliyun.com/nexus/content/groups/public</url>  
 </mirror>

二、IDEA - MAVEN

2.1 idea关联maven

  • 打开任何一个idea项目

  • file - setting for new project

找到build

2.2 为新项目设置

因为上面的设置只是对当前项目生效,需要对后续每个项目都生效!!需要再设置

2.2 创建java项目[重点]

  1. 找到maven选项
  1. 设置信息

2.3 java项目结构

复制代码
|-项目名
|---src
|------main
|---------java
|---------resources
|------test
|---------java
|---------resources
|---pom.xml

2.4 pom

pom 项目对象模型(project object model),这是一个xml文件(ps: xml文件一种文件格式,类似HTML是标签形式的)

pom文件内定义

  • 项目信息

    • 项目名

    • 组织名

    • 版本

    • 打包方式

      • 默认是jar , 普通java项目

      • 可以指定为war, 即web项目

  • 项目依赖

    • 依赖就是jar包

    • 是以坐标的形式展现

  • 构建工具

复制代码
   
复制代码
 <!--  项目信息--> 
    <groupId>com.qf</groupId>
    <artifactId>day18_java</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!-- 打包方式 ,默认是jar,如果是javaweb项目,打包方式是war-->
    <packaging>jar</packaging>
<!-- 定义依赖(jar包) -->
    <dependencies>
        <!-- 具体的jar包依赖坐标 -->
<!--        <dependency>-->
<!--            <groupId></groupId>-->
<!--            <artifactId></artifactId>-->
<!--            <version></version>-->
<!--        </dependency>-->
    </dependencies>

2.5 导入依赖

2.5.1 查找依赖

官方提供一中央仓库网站,网站中有所有jar包的依赖信息,就可以搜索依赖

Maven Repository: Search/Browse/Explore (mvnrepository.com)

2.5.2 使用依赖

将复制的依赖坐标,粘贴到pom文件

复制代码
    <!-- 依赖,就是jar包 -->
    <dependencies> 
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.16</version>
        </dependency>
    </dependencies>

还可以进入仓库中去查看,是否下载成功

2.6 测试

java 复制代码
public class Test {
    public static void main(String[] args) {
​
        FileUtil.del("E:\\IDEA-WorkSpace\\test_maven\\a.txt");
​
        System.out.println("over" );
        // 能执行就说明maven导入hutool成功
    }
}

2.7 BUG处理

如果依赖赋值粘贴后有红色报错,刷新maven

jar包的话就在子模块导入依赖即可

2.8 经验总结

  • 当你发现下方进度条一直在走,感觉走不完,,,, 一般情况镜像出问题

    • 此时需要打开idea的settings确定一下maven安装路径和settings配置文件是否是自己的

    • 改成自己的路径后,刷新maven

  • 使用maven,一般就是注意

    • 会创建maven项目(注意gav坐标)

    • 注意代码位置(src/main/java)

    • 注意pom.xml,会引入依赖(会查依赖)

      • 导入依赖后记得刷新maven让其下载依赖
相关推荐
我叫汪枫9 分钟前
《Java餐厅的待客之道:BIO, NIO, AIO三种服务模式的进化》
java·开发语言·nio
yaoxtao17 分钟前
java.nio.file.InvalidPathException异常
java·linux·ubuntu
Swift社区2 小时前
从 JDK 1.8 切换到 JDK 21 时遇到 NoProviderFoundException 该如何解决?
java·开发语言
DKPT3 小时前
JVM中如何调优新生代和老生代?
java·jvm·笔记·学习·spring
phltxy3 小时前
JVM——Java虚拟机学习
java·jvm·学习
seabirdssss4 小时前
使用Spring Boot DevTools快速重启功能
java·spring boot·后端
喂完待续4 小时前
【序列晋升】29 Spring Cloud Task 微服务架构下的轻量级任务调度框架
java·spring·spring cloud·云原生·架构·big data·序列晋升
benben0444 小时前
ReAct模式解读
java·ai
轮到我狗叫了5 小时前
牛客.小红的子串牛客.kotori和抽卡牛客.循环汉诺塔牛客.ruby和薯条
java·开发语言·算法