当前位置: 首页 > news >正文

什么是Maven?关于 Maven 的标准化结构、配置与项目创建

目录

一、什么是Maven?

1.提供标准化的项目结构(约定大于配置)

2.提供自动化的标准构建流程

3.提供统一的依赖管理机制

二、关于下载配置

1.下载安装

2.修改本地仓库与镜像

3.配置环境变量

三、是否需要手动安装 & 配置 Maven

1.不需要手动安装 Maven 的情况

2.需要手动安装 Maven 的情况

四、用mvn命令创建项目骨架

五、基于 IDEA 的 Maven工程创建

Maven 的“约定大于配置(Convention over Configuration)”理念

1.项目结构的约定:

2.构建生命周期的约定

3. 插件和命令的默认行为


一、什么是Maven?

Maven 是一个基于 Java 的项目管理与构建工具。
它不仅可以定义项目的结构与依赖,还能通过统一的方式实现自动化构建,是现代 Java 项目开发中不可或缺的基础工具。

Maven 主要提供以下三方面的能力


1.提供标准化的项目结构(约定大于配置)

在没有 Maven 之前,不同的开发工具、团队往往会使用不同的项目目录结构,导致新成员接手项目时常常需要重新熟悉结构,增加了协作成本。

Maven 通过一套标准的目录结构约定,让所有项目遵循统一的规范。


2.提供自动化的标准构建流程

传统的项目部署流程通常比较繁琐,比如一个 Web 项目可能需要:

手动编译 → 手动运行测试 → 手动打包 (war/jar) → 手动上传部署

每个步骤都需要人为干预,容易出错,也难以统一。

Maven 则定义了 标准化的构建生命周期,只需一条命令:

mvn clean package

Maven 会自动按以下流程执行:

编译(compile )        测试(test)        打包(package)        部署(deploy)

甚至可以与 Tomcat 或远程服务器结合,实现 一键自动化部署,极大地简化了项目发布流程,提高效率。


3.提供统一的依赖管理机制

在传统项目中,如果要使用第三方库,就必须手动下载 .jar 文件,复制到项目目录中。
当项目依赖变多时,不仅体积庞大、占磁盘,还容易出现版本冲突与依赖缺失等问题。

Maven 引入了「仓库 + 依赖管理机制」来解决这一痛点:

所有第三方依赖都从 中央仓库/镜像仓库 自动下载,不再需要手动管理 jar 包。

通过在 pom.xml 中声明 <dependency>,Maven 会自动:

下载指定版本的依赖;

解析其依赖的其他 jar(依赖传递);

统一管理依赖版本,减少冲突。

这样一来,项目体积更轻,团队协作也不需要再传输一堆 jar 包,版本管理更清晰。


二、关于下载配置

1.下载安装

Maven下载地址:

Download Apache Maven – Maven

选择 Binary zip 版本(例如 apache-maven-3.8.8-bin.zip),解压至任意目录。

找到解压缩后的文件:

找到:

打开:

2.修改本地仓库与镜像

修改默认的仓库(用自己需要的仓库存储jar包):


  同时,配置多个国内 Maven 镜像,加速依赖下载。
  由于本地仓库初始状态并不包含所有构建所需的 jar 包,
  Maven 会在首次构建时从远程仓库拉取依赖。
  如果不配置镜像,默认会从 Maven 官方中央仓库下载,速度较慢甚至可能超时。
  通过设置阿里云、华为云、腾讯云等镜像,可以显著提升下载速度和构建效率。

 <!-- 阿里云镜像 --><mirror><id>aliyunmaven</id><mirrorOf>central</mirrorOf><name>Aliyun Maven Central Mirror</name><url>https://maven.aliyun.com/repository/public</url></mirror><!-- 华为云镜像 --><mirror><id>huaweicloud</id><mirrorOf>central</mirrorOf><name>Huawei Cloud Maven Central Mirror</name><url>https://repo.huaweicloud.com/repository/maven/</url></mirror><!-- 腾讯云镜像 --><mirror><id>tencent</id><mirrorOf>central</mirrorOf><name>Tencent Cloud Maven Central Mirror</name><url>https://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url></mirror>

3.配置环境变量

设置MAVEN_HOME为Maven根目录

将MAVEN_HOME/bin 加入 Path

打开一个新的命令行,执行:

mvn -v

输出:

出现版本信息就表示配置成功了


在IntelliJ IDEA中,找到「Settings → Build, Execution, Deployment → Build Tools → Maven」

同时选择配置好的setting的文件


三、是否需要手动安装 & 配置 Maven

在使用 IntelliJ IDEA 开发 Java 项目时,IDEA 本身自带了一个 Maven 版本,通常位于 IDEA 的安装目录下,例如:

D:\Web\Ideal\IntelliJ IDEA 2024.2.4\plugins\maven\lib\maven3

也就是说,即使你本地系统没有单独安装 Maven,IDEA 也可以直接使用内置 Maven 来执行构建、依赖下载、打包等操作
对于大多数初学者或中小型项目而言,直接使用 IDEA 自带的 Maven 完全可以满足开发需求,无需额外手动安装和配置环境变量。

1.不需要手动安装 Maven 的情况

使用 IDEA 开发普通 Java / Spring Boot 项目;

仅在本地进行开发、调试、打包;

对 Maven 版本没有特殊要求;

团队统一使用 IDEA 内置 Maven。

在这种场景下,你只需要在 IDEA 的

Settings → Build, Execution, Deployment → Build Tools → Maven
中确认 Maven home path 使用的是默认的内置路径即可:

2.需要手动安装 Maven 的情况

在以下场景中,建议手动下载、安装 Maven 并配置环境变量:

1.需要在命令行(cmd / PowerShell / Terminal)中使用 Maven 命令,例如:

mvn clean installmvn package

这时必须让系统知道 Maven 的位置。

2.项目对 Maven 版本有特定要求,而 IDEA 自带的版本无法满足。

3.企业或团队内部要求统一使用某个指定版本的 Maven,例如 CI/CD 流程中使用的版本。

4.需要自定义 Maven 配置(如本地仓库位置、镜像源、全局 settings.xml),而不希望修改 IDEA 内置 Maven 目录。


四、用mvn命令创建项目骨架

通过 Maven Archetype 可以快速生成标准项目结构:

mvn archetype:generate

这个命令是通过已有的项目模板(Archetype),快速生成一个标准结构的 Maven 项目骨架。

打开想要创建项目的文件,运行上述命令:

当执行mvn archetype:generate 命令时,Maven 首先会从远程仓库(如中央仓库或镜像)下载 archetype 插件,然后下载对应的 项目模板(archetype),最后还会下载模板中定义的依赖。所有下载的内容都会缓存在本地仓库中,以便后续项目创建或构建时重复利用。这就是为什么第一次执行这个命令时会看到大量的下载日志。

下载完成后点击回车,输入项目的groupId: com.ma

然后输入artifactId:hello

默认版本为1.0-SNAPSHOT,包名为com.ma,此时输入Y,使用这些配置继续生成项目骨架

生成的结构如下:

hello
├── pom.xml
└── src├── main│   └── java│       └── com│           └── ma│               └── App.java└── test└── java└── com└── ma└── AppTest.java

并且在pom.xml里会有:

<groupId>com.ma</groupId>
<artifactId>hello</artifactId>
<version>1.0-SNAPSHOT</version>

小提示:

Define value for property 'package': com.ma
这里的 package 指的是 项目的基础包名,它会决定生成项目时的 Java 代码所在的包结构

比如输入:com.ma

生成的目录结构会是:

src└─ main└─ java└─ com└─ ma└─ App.java(默认生成的类)

同时,生成的类文件里也会自动加上:

package com.ma;/*** Hello world!*/
public class App {public static void main(String[] args) {System.out.println("Hello World!");}
}

很多时候 package  会和 groupId  保持一致,比如:

groupId:   com.ma
artifactId: hello
package:   com.ma

因为这样生成的代码包结构、依赖坐标就能保持统一和清晰。

当然,也可以单独指定一个不同的包名,比如:

groupId: com.ma.project
package: com.ma.web.api

这种情况在多模块项目中比较常见。


五、基于 IDEA 的 Maven工程创建

首先,我们 new 一个 project

在这里就需要提到一个常听到的概念:

Maven 的“约定大于配置(Convention over Configuration)”理念

定义:
Maven 通过一套“统一的项目结构、默认的构建生命周期和插件行为”,在不写或少写配置的情况下,项目就能完成构建、测试、打包等工作。
只要遵守 Maven 的约定目录结构和命名规则,就不需要额外配置。
这大大减少了 XML 配置的复杂度。

1.项目结构的约定:

只要你把源代码、资源文件放在这几个位置,Maven 就自动识别,不需要额外配置编译路径、资源路径等。

2.构建生命周期的约定

Maven 提供了默认的生命周期,比如 compile、test、package、install 等。
执行 mvn package 时,Maven 会自动按以下顺序执行:

validate → compile → test → package

不需要去写每个阶段该做什么,Maven 已经约定好:

compile:编译 src/main/java

test:运行 src/test/java 的测试

package:把编译结果打包成 jar/war

3. 插件和命令的默认行为

例如,Maven 的 maven-compiler-plugin 插件默认就会编译 src/main/java。

除非有特别的路径或版本要求,否则不需要在 pom.xml 中额外配置。

“约定大于配置” 就是:遵守 Maven 的标准,Maven 就帮你做好大部分事,你只在“有特殊需求”时才去改配置。

http://www.dtcms.com/a/454427.html

相关文章:

  • 在学校Linux服务器上配置go语言环境
  • 许昌做网站的公司长春做线上推广的科技公司
  • 广东省建设厅的注册中心网站建网站的公司哪里好
  • 自己做电影网站违法吗做个营销型网站设计
  • 树上启发式合并 学习记录
  • MCP 的核心概念和例子
  • 淘客做网站运营国际网站怎么样做
  • 数据结构-算法C++(额外问题汇总)
  • 广州制作外贸网站邯郸wap网站建设公司
  • 在 Ubuntu22.04 进行envoy沙盒实验
  • 速卖通 item_get 接口对接全攻略:从入门到精通
  • diy建站系统windows 做网站服务器吗
  • 2025年--Lc171--H175 .组合两个表(SQL)
  • 贪心算法 | 每周8题(二)
  • 杭州知名的企业网站建设策划连云港吧
  • 建设工程网站有哪些黄骅贴吧最近发生的事
  • 广西网站建设招标公司如何用网站做招聘
  • 网络引流怎么做啊?百度关键词seo排名优化
  • 【开题答辩全过程】以 爱学习教育网站为例,包含答辩的问题和答案
  • 做旅游攻略去什么网站好广告设计与制作短期培训班
  • 搭建个人博客网站找国内外贸公司的网站
  • Halcon---3D知识点总结(待整理完善)
  • 速卖通自养号测评系统构建指南:三大核心技术要点解析
  • 中国城乡建设厅网站首页长沙企业推广
  • 手机上怎么做自己卖菜的网站大埔建设工程交易中心网站
  • 东莞网站建设做网站wordpress 思源黑体
  • 人声增强AI开源软件
  • 学校网站设计理念哪些网站可以做微商
  • 网站制作学生信息管理太原贴吧
  • C语言模拟面向对象编程方法之封装