Maven的安装使用


一、前置条件:JDK 安装 & 环境变量

  1. 安装 JDK
    建议至少 JDK 8+,比如:
    • D:\Software\Java\Java8\
    • D:\Software\Java\Java11\
  2. 配置环境变量 (系统环境变量)
    • 新建 / 修改 JAVA_HOME
text 复制代码
JAVA_HOME = D:\Software\Java\Java11
复制代码
- 在 `Path` 中追加:
text 复制代码
%JAVA_HOME%\bin
  1. 验证

打开命令行(cmd 或 PowerShell):

bash 复制代码
java -version

能正常显示版本,就 OK。


二、安装 Maven(以 Windows 为例)

1. 下载 Maven

到官网或镜像站(Apache / 阿里云镜像)下载 二进制包,例如:

  • apache-maven-3.8.8-bin.zip
  • apache-maven-3.9.x-bin.zip

一般公司里会固定版本,比如 3.8.8 或 3.9.9,避免每台机器不一样。

2. 解压

解压到你习惯的位置,例如:

text 复制代码
D:\Software\apache-maven-3.8.8

解压后目录一般是:

text 复制代码
D:\Software\apache-maven-3.8.8\
  ├── bin\
  ├── conf\
  ├── lib\
  └── ...

3. 配置环境变量

在「系统环境变量」里添加:

  1. MAVEN_HOME 或 M2_HOME (二选一即可,很多老项目叫 M2_HOME):

    text 复制代码
    MAVEN_HOME = D:\Software\apache-maven-3.8.8
  2. Path 中追加:

    text 复制代码
    %MAVEN_HOME%\bin

4. 验证 Maven 是否安装成功

打开新的命令行窗口(必须新开一次):

bash 复制代码
mvn -v

正常输出类似:

text 复制代码
Apache Maven 3.8.8 (...)
Java version: 11.0.x, vendor: Oracle Corporation

说明 Maven 安装完成。


三、配置 Maven:本地仓库 & 镜像 & 私服

Maven 的配置文件在:

text 复制代码
%MAVEN_HOME%\conf\settings.xml

不建议改 pom.xml 里全局的东西,全局配置放 settings.xml ,项目配置放 pom.xml


1. 配置本地仓库(localRepository)

你之前已经用过类似路径,我直接用你的习惯示例:

xml 复制代码
<settings ...>
  <!-- 放在最前面也可以 -->
  <localRepository>E:\Maven\MavenRepository</localRepository>
  ...
</settings>

这样所有 jar 都会下载到:

text 复制代码
E:\Maven\MavenRepository\

好处:可以放到大盘 / 固态盘上,便于备份和迁移。


2. 配置国内镜像(比如阿里云)

settings.xml<mirrors> 中添加(如果没有 <mirrors> 就新建一个):

xml 复制代码
<mirrors>
  <!-- 只镜像 central 仓库 -->
  <mirror>
    <id>aliyun-central</id>
    <url>https://maven.aliyun.com/repository/public</url>
    <mirrorOf>central</mirrorOf>
  </mirror>
</mirrors>

解释:

  • mirrorOfcentral:只替代中央仓库,不影响你公司私服。
  • 如果你还有公司私服,就不要写成 *,避免把私服也镜像掉。

3. 配置私服账号(Nexus / Artifactory)

如果公司有私服(比如 http://nexus.xxx.com/repository/maven-releases),需要在 settings.xml 里配置账号:

xml 复制代码
<servers>
  <server>
    <id>xc-releases</id>
    <username>admin</username>
    <password>xc123456</password>
  </server>

  <server>
    <id>xc-snapshots</id>
    <username>admin</username>
    <password>xc123456</password>
  </server>
</servers>

这里的 <id> 要和 pom.xml<distributionManagement><repository> 里的 <id> 一致,Maven 才会拿到对应的账号密码。


四、快速上手:创建一个 Maven 项目

方式一:命令行创建(适合做 Demo)

在某个空目录里执行:

bash 复制代码
mvn archetype:generate ^
  -DgroupId=com.example.demo ^
  -DartifactId=maven-demo ^
  -DarchetypeArtifactId=maven-archetype-quickstart ^
  -DarchetypeVersion=1.4 ^
  -DinteractiveMode=false

执行完,会生成目录结构:

text 复制代码
maven-demo
 ├── pom.xml
 └── src
      ├── main
      │    └── java
      │         └── com/example/demo/App.java
      └── test
           └── java
                └── com/example/demo/AppTest.java

方式二:在 IDEA 中创建 Maven 项目(更常用)

  1. New Project → 选择 Maven
  2. 填写:
    • GroupId:com.example
    • ArtifactId:maven-demo
    • Version:1.0.0-SNAPSHOT
  3. 选择 Project SDK(JDK 8/11)
  4. 完成后 IDEA 自动生成 pom.xml 和标准目录结构。

五、理解 pom.xml 的基本结构

一个最小可用的 pom.xml

xml 复制代码
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                             http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <!-- 项目坐标(全局唯一) -->
  <groupId>com.example</groupId>
  <artifactId>maven-demo</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>maven-demo</name>

  <!-- 依赖 -->
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <version>3.0.4</version>
    </dependency>
  </dependencies>

</project>

关键点:

  • groupId + artifactId + version = jar 的唯一身份
  • <dependencies> 里写你要用的库,Maven 自动下载

六、Maven 常用命令(你日常 90% 情况就靠这些)

在项目根目录(有 pom.xml 的地方)执行:

bash 复制代码
# 1. 清理编译结果(删 target)
mvn clean

# 2. 编译
mvn compile

# 3. 运行测试
mvn test

# 4. 打包(生成 jar / war)
mvn package

# 5. 安装到本地仓库(E:\Maven\MavenRepository)
mvn install

# 6. 发布到私服(需要配置 distributionManagement)
mvn deploy

# 7. 查看依赖树(排查冲突)
mvn dependency:tree

# 8. 强制更新所有 Snapshot
mvn clean install -U

常见组合用法:

bash 复制代码
# 开发期:清理 + 编译 + 打包 + 安装
mvn clean install

# CI 中比较常见
mvn -U clean package

七、在 IDEA 中使用 Maven(和项目关联)

1. 让 IDEA 使用你本地安装的 Maven

IDEA → SettingsBuild, Execution, DeploymentBuild ToolsMaven

  • Maven home directory:

    指向你的本地 Maven,例如:
    D:\Software\apache-maven-3.8.8

  • User settings file:

    指向你的 settings.xml
    D:\Software\apache-maven-3.8.8\conf\settings.xml

    (或者你自己拷贝到 C:\Users\xxx\.m2\settings.xml

  • Local repository:

    IDEA 会自动从 settings.xml 读取;若未指定,可以在这里填:
    E:\Maven\MavenRepository

2. 导入已有 Maven 工程

  • File → Open → 选择含 pom.xml 的目录 → IDEA 会识别为 Maven 项目

  • 右侧 Maven 工具窗口可以:

    • 重新加载项目
    • 执行 clean, compile, package 等命令
    • 看到模块、生命周期、插件

八、多模块 Maven 工程简单示例(你以后大型项目肯定会用)

结构示例:

text 复制代码
maven-parent
 ├── maven-common
 ├── maven-service
 └── maven-web

父工程 pom.xml (打成 pom):

xml 复制代码
<project>
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.example</groupId>
  <artifactId>maven-parent</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <modules>
    <module>maven-common</module>
    <module>maven-service</module>
    <module>maven-web</module>
  </modules>

  <!-- 统一依赖版本、插件 -->
</project>

子模块 maven-service/pom.xml

xml 复制代码
<project>
  <parent>
    <groupId>com.example</groupId>
    <artifactId>maven-parent</artifactId>
    <version>1.0.0-SNAPSHOT</version>
  </parent>

  <artifactId>maven-service</artifactId>

  <!-- 子模块自己的依赖 -->
</project>

在父工程目录执行:

bash 复制代码
mvn clean install

会按顺序构建所有子模块。


九、常见问题 & 快速排查思路

1. 提示:No compiler is provided in this environment

  • 原因:你只装了 JRE,没有 JDK,或 JAVA_HOME 指到了 JRE
  • 解决:
    • 安装 JDK
    • JAVA_HOME 指向 .../jdkX,不是 jre

2. 提示:Could not resolve artifact ... / 下载依赖失败

排查顺序:

  1. ping 一下外网(或私服地址):

    • 是否能访问
  2. 检查 settings.xml

    • mirrors 是否只镜像了 central
    • 私服 <repository> 地址是否写错
  3. 强制更新:

    bash 复制代码
    mvn -U clean install

3. 构建报错但信息很多,看不清原因

可以加上:

bash 复制代码
mvn clean install -X

或在 IDEA Maven 窗口中勾选 --errors / --debug,找到第一个真正的异常栈。


4. 版本冲突(比如 log4j 出了两个版本)

用:

bash 复制代码
mvn dependency:tree

找到谁引入了哪个版本,然后在 pom.xml<dependencyManagement><exclusions> 控制版本。


十、你可以这样建立自己的 Maven 使用习惯

给你一个「日常流程模板」,你按这个用基本不会乱:

  1. 开始一个新项目时:

    • IDEA 新建 Maven 项目 → 填 groupId/artifactId
    • pom.xml 里加依赖
    • 确认 settings.xml 指向你自己的本地仓库和镜像
  2. 改完代码准备打包时:

bash 复制代码
mvn clean package
  1. 需要给其他项目引用此 jar 时:
bash 复制代码
mvn clean install

然后在另一个项目的 pom.xml 加上依赖即可。

  1. 需要发布到公司私服时:
  • settings.xml 中配置好 <servers>
  • pom.xml 中配置 <distributionManagement>
  • 执行:
bash 复制代码
mvn clean deploy

相关推荐
Luna-player1 小时前
Spring整合MyBatis-Pluss 部分课堂学习笔记
java·开发语言·tomcat
I'm Jie1 小时前
Java 字节码工具 ASM,实现类的动态增强
java·spring boot·spring·asm·cglib·class
⑩-1 小时前
Spring 的事务传播行为(Propagation)
java·数据库·spring
没有bug.的程序员1 小时前
K8s 环境中的 JVM 调优实战
java·jvm·spring·云原生·容器·kubernetes
Trouvaille ~1 小时前
【Java篇】以简驭繁:接口的精简与程序的优雅
java·开发语言·接口·抽象工厂模式·类和对象·javase·基础入门
一只乔哇噻1 小时前
java后端工程师+AI大模型开发进修ing(研一版‖day62)
java·开发语言·算法·语言模型
利刃大大1 小时前
【JavaSE】十、ArrayList && LinkedList
java·链表·数组
Qiuner1 小时前
Spring 机制六: MVC 全链路源码解析:从 DispatcherServlet 到返回值解析(超硬核源码深度)
java·spring boot·后端·spring·mvc
子一!!1 小时前
并查集(Union-Find)数据结构
java·数据结构·算法