Maven的详细解读和配置

news/2024/9/22 12:41:34 标签: maven, java

目录

一、Maven

1.1 引言

1.2 介绍

1.3 下载安装

1.3.1 解压

1.3.2 配置环境变量

1.3.3 测试

1.4 仓库[了解]

1.5 Maven配置

1.5.1 修改仓库位置

1.5.2 设置镜像

二、IDEA - MAVEN

maven-toc" style="margin-left:40px;">2.1 idea关联maven

2.2 为新项目设置

java%E9%A1%B9%E7%9B%AE%5B%E9%87%8D%E7%82%B9%5D-toc" style="margin-left:40px;">2.2 创建java项目[重点]

java%E9%A1%B9%E7%9B%AE%E7%BB%93%E6%9E%84-toc" style="margin-left:40px;">2.3 java项目结构

2.4 pom

2.5 导入依赖

2.5.1 查找依赖

2.5.2 使用依赖

2.6 测试

2.7 BUG处理

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)

image-20230322172016815

1.3.1 解压

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

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

1.3.2 配置环境变量

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

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

image-20230802095018346

image-20230802095249121

1.3.3 测试

打开cmd,输入mvn -v

image-20230323095449682

1.4 仓库[了解]

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


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

  • 本地仓库

    • 自己电脑上

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

  • 中央仓库

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

    • 可能有时候访问比较慢

  • 公共仓库

    • 私服(个人)

    • 阿里云,网易,等等

image-20230322172407495

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

maven">2.1 idea关联maven

  • 打开任何一个idea项目

  • file - setting for new project

    image-20240618100851274

找到build

image-20221124110058057

image-20221124110417317

2.2 为新项目设置

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

image-20240314100717601

image-20240314100736744

java%E9%A1%B9%E7%9B%AE%5B%E9%87%8D%E7%82%B9%5D">2.2 创建java项目[重点]

  1. 找到maven选项

image-20221124110734298

  1. 设置信息

image-20230322172605656

image-20240314100303836

java%E9%A1%B9%E7%9B%AE%E7%BB%93%E6%9E%84">2.3 java项目结构

image-20230322172622607

|-项目名
|---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)

image-20230802113117921

image-20230802113044343

image-20230802113020309

2.5.2 使用依赖

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

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

image-20230802113144238

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

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

image-20230802113309608

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

2.8 经验总结

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

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

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

  • 使用maven,一般就是注意

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

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

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

      • 导入依赖后记得刷新maven让其下载依赖


http://www.niftyadmin.cn/n/5670276.html

相关文章

Spring Boot实现:Java免税商品购物商城全攻略

第一章 绪论 1.1 课题开发的背景 从古至今&#xff0c;通过书本获取知识信息的方式完全被互联网络信息化&#xff0c;但是免税商品优选购物商城&#xff0c;对于购物商城工作来说&#xff0c;仍然是一项非常重要的工作。尤其是免税商品优选购物商城&#xff0c;传统人工记录模式…

如何在GitHub上Clone项目:一步步指南

GitHub作为全球最大的代码托管平台&#xff0c;汇聚了无数开发者的智慧结晶。对于初学者和资深开发者来说&#xff0c;学会如何从GitHub上克隆&#xff08;Clone&#xff09;项目是一项基本且重要的技能。本文将详细介绍如何在GitHub上克隆项目的步骤&#xff0c;帮助你轻松将他…

ubuntu18.04升级到20.04

要将 Ubuntu 18.04 升级到 Ubuntu 20.04&#xff0c;你可以按照以下步骤进行操作。升级操作会涉及到系统的核心部分&#xff0c;建议在升级之前备份重要数据。 1. 备份数据 在进行系统升级之前&#xff0c;请确保备份重要的数据。可以使用 rsync、tar、或者系统备份工具来创建…

【RabbitMQ】⾼级特性

RabbitMQ ⾼级特性 1. 消息确认1.1 消息确认机制1.2 代码示例 2. 持久化2.1 交换机持久化2.2 队列持久化2.3 消息持久化 3. 发送⽅确认3.1 confirm确认模式3.2 return退回模式3.3 问题: 如何保证RabbitMQ消息的可靠传输? 4. 重试机制5. TTL5.1 设置消息的TTL5.2 设置队列的TTL…

通信工程学习:什么是VLAN虚拟局域网

VLAN&#xff1a;虚拟局域网 VLAN&#xff08;Virtual Local Area Network&#xff0c;虚拟局域网&#xff09;是一种将物理局域网在逻辑上划分成多个广播域的通信技术。以下是关于VLAN的详细解释&#xff1a; 一、VLAN虚拟局域网的定义与概述 VLAN通过逻辑方式将网络中的设备…

明日周刊-第21期

断更了一段时间&#xff0c;现在开始续上。本周的最大的杭州科技活动应该就是云栖大会了&#xff0c;一年一度的云栖大会也不知不觉经过了十年&#xff0c;趁着周六我也去好好体验了一番。&#xff08;ps&#xff1a;下周炉石传说重回国服了&#xff0c;各位都准备好了吗&#…

并发面试题-创建线程有几种方式

在Java中&#xff0c;创建线程主要有以下几种方式&#xff1a; 1、继承Thread类 通过继承Thread类来创建线程是最基本的一种方式。你需要创建一个继承自Thread类的子类&#xff0c;并重写其run方法。然后&#xff0c;你可以创建该子类的实例来创建新的线程。最后&#xff0c;…

实现领域驱动设计(DDD)系列详解:厘清限界上下文的边界

限界上下文即使都被设计为自治的独立王国&#xff0c;也不可能“老死不相往来”​。要完成一个完整的业务场景&#xff0c;可能需要多个限界上下文的共同协作。 只有如此&#xff0c;才能提供系统的全局视图。每个限界上下文的边界只能控制属于自己的领域模型&#xff0c;对于…