【Maven】如何创建/导入Maven项目?手把手教学(包括下载/安装/创建/配置)

简介: Maven是Java项目管理与构建工具,核心功能包括:依赖管理(自动下载jar包、解决版本冲突)、标准化构建(编译、测试、打包、部署)和统一项目结构(跨IDE兼容)。通过pom.xml配置,结合中央仓库与阿里云镜像,大幅提升开发效率。

前言

Maven 是一款用于管理和构建Java项目的工具。

一、Maven的概念

Maven 是一款用于管理和构建Java项目的工具。

二、Maven的作用

Maven的作用

(一) 依赖管理

方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题。

1. 只需要在maven项目的pom.xml文件中,添加一段如下图所示的配置即可实现!!

配置

2. 在maven项目的配置文件中,加入上面这么一段配置信息之后,maven会自动的根据配置信息的描述,去下载对应的依赖。 然后在项目中,就可以直接使用了。

(二) 项目构建

Maven提供了标准化的跨平台的自动化构建方式。

1. 通过Maven中的命令,可以很方便的完成项目的跨平台-编译(compile)、测试(test)、打包(package)、发布(deploy) 等操作

Maven项目构建

(三) 统一的项目结构

Maven 提供了标准、统一的项目结构。

1. 使用Maven这款项目构建工具,它给我们提供了一套标准的java项目目录。意味着,无论我们使用的是什么开发工具,只要是基于maven构建的java项目,最终的目录结构都是相同的。
2. 统一的maven项目结构

统一的Maven项目结构

4. 那这样呢,我们使用Eclipse、MyEclipse、IDEA创建的maven项目,就可以在各个开发工具之间直接导入使用了,更加方便、快捷。

三、Maven的核心内容

(一) Maven下载与安装

一、下载

下载网址:https://maven.apache.org/download.cgi
(建议:jdk版本、Maven版本:直接找公司组长或组员要,避免版本不兼容问题)

二、安装

1、解压安装(建议解压到没有中文、特殊字符的路径下)
2、配置本地仓库

● 在该安装目录下新建一个文件夹mvn-repo(本地maven仓库),用来存储jar包
配置本地仓库
● 进入到conf目录下修改settings.xml配置文件
● 新建标签体,将新建的用来存储jar包的文件路径放在标签体内
<localRepository>标签

3、配置阿里云私服

● 进入到conf目录下修改settings.xml配置文件:

  1. 在标签下为其添加子标签,内容如下:
<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>
4、配置Maven环境变量(Maven环境变量的配置类似于JDK环境变量配置一样)
  1. 在系统变量处新建一个变量MAVEN_HOME。 MAVEN_HOME环境变量的值,设置为maven的解压安装目录
    image.png

  2. 在Path中进行配置。 PATH环境变量的值,设置为:%MAVEN_HOME%\bin
    image.png

  3. 打开DOS命令提示符进行验证,命令为:mvn -v,若如下图所示,则表示安装成功。
    image.png

(二)Maven模型

● 项目对象模型 (POM,Project Object Model):用来描述当前的maven项目
项目对象模型

● 依赖管理模型(Dependency)
○ Maven坐标
■ 概念:资源的唯一标识 , 通过该坐标可以唯一定位资源位置
■ 作用:使用坐标来定义项目或引入项目中需要的依赖
■ 主要组成:
依赖管理模型

● 构建生命周期/阶段(Build lifecycle & phases)

(三)创建Maven项目

创建Maven项目

一、配置Maven环境(在IDEA中配置Maven环境,默认全局设置)

  1. 进入IDEA的欢迎页面
    ● 选择 IDEA中 File
    ● => close project => Customize=> All settings
  2. 打开 All settings , 选择 Build,Execution,Deployment
    ● => Build Tools => Maven
  3. 配置工程的编译版本为17

    二、创建Maven项目

  4. 创建一个空项目,命名为 web-project01
  5. 创建好项目之后,进入项目中,要设置JDK的版本号。选择小齿轮,选择 Project Structure
  6. 创建模块,选择Java语言,选择Maven。 填写模块的基本信息
    image.png
  1. 在maven项目中,创建HelloWorld类,并运行

    (四)导入Maven项目

    建议:将要导入的maven项目复制到自己的项目目录下
    ● 方式一:File->Project Structure->Modules->Import Module->选择maven项目的pom.xml。
    image.png

● 方式二:Maven面板->+(Add Maven Projects)->选择maven项目的pom.xml。
image.png

(五)依赖引入

  1. 依赖的概念:指当前项目运行所需要的jar包。一个项目中可以引入多个依赖。
  2. 例如:在当前工程中,我们需要用到logback来记录日志,此时就可以在maven工程的pom.xml文件中,引入logback的依赖。具体步骤如下:
    a. 在pom.xml中编写标签
    b. 在标签中使用引入坐标
    c. 定义坐标的 groupId、artifactId、version
<dependencies>
  <!-- 依赖 : spring-context -->
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>6.1.4</version>
  </dependency>
</dependencies>
  1. 点击刷新按钮,引入最新加入的坐标
  2. 刷新依赖:保证每一次引入新的依赖,或者修改现有的依赖配置,都可以加入最新的坐标
    image.png

a. 如果引入的依赖,在本地仓库中不存在,将会连接远程仓库 / 中央仓库,然后下载依赖(这个过程会比较耗时,耐心等待)
b. 如果不知道依赖的坐标信息,可以到mvn的中央仓库(https://mvnrepository.com/)中搜索

(六)依赖传递

  1. 概念:如果在maven项目中,A 依赖了B,B依赖了C,C依赖了D,那么在A项目中,也会有C、D依赖,因为依赖会传递。

    (七)排除依赖(依赖排除)

  2. 概念:排除依赖指主动断开依赖的资源,被排除的资源无需指定版本。(如果传递下来的依赖,在项目开发中确实不需要,此时可以通过Maven中的排除依赖功能,来将这个依赖排除掉。)
  3. 配置形式如下:
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>6.1.4</version>

  <!--排除依赖, 主动断开依赖的资源-->
  <exclusions>
    <exclusion>
      <groupId>io.micrometer</groupId>
      <artifactId>micrometer-observation</artifactId>
    </exclusion>
  </exclusions>
</dependency>

(八)Maven的生命周期

  1. 概念:描述了一次项目构建,经历哪些阶段。
    ● 生命周期的顺序是:clean --> validate --> compile --> test --> package --> verify --> install --> site --> deploy
    ● 着重关注:clean --> compile --> test --> package --> install
  2. 生命周期本身不做任何实际工作。在Maven的设计中,实际任务(如源代码编译)都交由插件来完成。
  3. 在同一套生命周期中,我们在执行后面的生命周期时,前面的生命周期都会执行。
  4. Maven对项目构建的生命周期划分为3套(相互独立):
    ● clean:清理工作。
    ● default:核心工作。如:编译、测试、打包、安装、部署等。
    ● site:生成报告、发布站点等。
    image.png

思考:当运行package生命周期时,clean、compile生命周期会不会运行?
clean不会运行,compile会运行。 因为compile与package属于同一套生命周期,而clean与package不属于同一套生命周期。
● clean:移除上一次构建生成的文件
● compile:编译项目源代码
● test:使用合适的单元测试框架运行测试(junit)
● package:将编译后的文件打包,如:jar、war等
● install:安装项目到本地仓库

  1. 执行指定的生命周期,有两种执行方式:
    a. 在idea工具右侧的maven工具栏中,选择对应的生命周期,双击执行
    b. 在DOS命令行cmd中,通过maven命令执行,比如命令:
    ○ mvn compile
    ○ mvn test
    ○ mvn package
    ○ mvn install

    四、Maven常见问题

    image.png

● 问题现象:Maven项目中添加的依赖,未正确下载,造成右侧Maven面板中的依赖报红,再次reload重新加载也不会再下载。
● 产生原因:由于网络原因,依赖没有下载完整导致的,在maven仓库中生成了xxx.lastUpdated文件,该文件不删除,不会再重新下载。
image.png

解决方案:

  1. 根据maven依赖的坐标,找到仓库中对应的 xxx.lastUpdated 文件,删除,删除之后重新加载项目即可。
  2. 通过命令 (del /s *.lastUpdated) 批量递归删除指定目录下的 xxx.lastUpdated 文件,删除之后重新加载项目即可。
  3. 重新加载依赖,依赖下载了之后,maven面板可能还会报红,此时可以关闭IDEA,重新打开IDEA加载此项目即可。
    为了使大家能够方便的解决这个问题,大家可以将资料中提供的 del.bat 批处理脚本,拷贝到maven的安装目录下。 双击这个文件,就可以递归删除该目录下所有的 xxx.lastUpdated 文件。 放置目录如下所示:
    image.png

● 附件(上述提到的del.bat批处理文件, 也可以直接点此下载):
del.bat

相关文章
|
5月前
|
Java Maven
【2026最新】Maven配置阿里云镜像
本文介绍在Maven 3.9与JDK 21环境下,如何配置阿里云镜像加速依赖下载。通过修改Maven的conf/settings.xml文件,在&lt;mirrors&gt;标签中添加阿里云公共仓库镜像配置,提升构建效率。
4843 1
|
Java Maven
Maven常用镜像配置
Maven常用镜像配置
2194 0
|
固态存储 安全 Java
Maven settings.xml 最全配置详解:从入门到精通
本文深入讲解了 Maven settings.xml 的完整配置项,包含本地仓库路径、镜像源配置、代理设置、认证信息、Profile 多环境切换等核心内容。通过 10 个实战案例展示了企业级配置最佳实践,提供可直接使用的配置文件模板。掌握这些技能,你将能够轻松应对团队标准化、私服集成、多环境部署等场景。适合 Java 开发者、DevOps 工程师阅读。
2462 0
|
3月前
|
JSON Java Maven
【Maven】pom.xml 超全面详解(核心结构+所有常用依赖)
本文详解Maven核心配置文件pom.xml的七大结构(坐标、属性、依赖、构建等),并分类梳理Web、数据库、工具、测试、日志、JSON等场景下最常用依赖的功能与用法,助开发者高效管理项目依赖与构建流程。
|
7天前
|
JSON Java Maven
【Spring全家桶】Spring Boot 3.x:Starter原理、自定义Starter、配置加载优先级、多环境配置(附《思维导图》+《面试高频考点清单》)
Spring Boot 3.x 核心配置体系详解:基于Java 17+与Jakarta EE 9+,以“约定优于配置”为理念,通过Starter(自动配置+依赖聚合)和BOM统一版本管理,实现开箱即用;支持`AutoConfiguration.imports`新机制、多级配置优先级及Profile环境隔离,全面提升开发效率与可维护性。
|
7天前
|
Java 测试技术 Nacos
【Spring全家桶】Spring Cloud 2023.0.x:配置中心:Nacos Config、Apollo(附《思维导图》+《面试高频考点清单》)
本文系统梳理Spring Cloud 2023.0.x(Leyton版)配置中心知识体系,涵盖Nacos与Apollo双引擎深度对比、Spring Boot 3.2+最新集成方式(`spring.config.import`)、动态刷新机制、权限审计、灰度发布等核心能力,助力微服务配置治理高效落地。
|
1月前
|
Java Linux Apache
【2026最新】Maven下载安装配置保姆级图文教程(附安装包+图文步骤)
Apache Maven是免费开源的Java项目管理与构建工具,基于POM模型,统一管理依赖、编译、测试、打包与部署。支持Windows/macOS/Linux,最新版3.9.15。规范性强、上手快,广泛用于企业级Java项目。(239字)
|
3月前
|
SQL 缓存 Java
【MyBatis】MyBatis框架知识(全体系总结)
MyBatis 是一款轻量级持久层框架,支持SQL与代码分离、动态SQL、灵活映射及一二级缓存。本文系统讲解其核心组件、配置文件、Mapper映射、CRUD、缓存机制、插件扩展(如PageHelper、MyBatis-Plus)及最佳实践,助你高效掌握ORM开发。
1208 3
|
10月前
|
Oracle Java Linux
JDK
JDK
5314 0

热门文章

最新文章