不废话,直接说核心:Maven是Java项目开发里绕不开的构建工具,你在网上看到的"下载、安装、配置环境变量、修改配置文件"这套操作,本质上是把项目的依赖管理、编译打包、发布流程全部标准化。这篇我就用实际动手跑的流程,把Maven从零到能用的每一步拆开讲清楚,包括版本选择、环境变量配置原理、settings.xml里那些容易被忽略的坑,以及IDEA集成和常见报错的排查思路。适合刚接触Java生态的新手,也适合被环境配置折磨过、想彻底搞懂原理的开发者。
1. 动手之前,先搞懂Maven到底是干嘛的
1.1 没有Maven的时候,项目是怎么管理的
很多初学者上来就下载Maven、配置环境变量,完全没想过它解决的是什么问题。我这么跟你解释:在没有Maven的年代,做一个Java Web项目,你得手动去各个网站下载jar包,比如MySQL驱动、Spring框架、日志组件。下载完还要手动复制到项目里的lib目录,如果某个jar包依赖了另一个jar包,你得自己把整套依赖链全部找齐。换一台电脑或者换个人接手项目,这套手工流程得重新来一遍。更头疼的是版本冲突——A依赖log4j 1.x,B依赖log4j 2.x,运行起来各种NoSuchMethodError,排查到怀疑人生。
Maven要解决的就是这三件事:第一,统一依赖管理,只需要在pom.xml里写坐标,它帮你下载并管理依赖树;第二,标准化构建流程,clean、compile、test、package、install这些阶段直接命令执行;第三,统一项目结构和生命周期,让每个Maven项目长一个样。理解了这几个痛点,你才知道自己为什么要配置环境变量、为什么要改settings.xml。
1.2 Maven的核心概念:坐标、仓库、POM
Maven里最核心的三个概念,我尽量用大白话讲:
- 坐标:每个依赖包的唯一身份证,由groupId、artifactId、version三个字段组成。比如
<groupId>mysql</groupId>、<artifactId>mysql-connector-java</artifactId>、<version>8.0.33</version>,三样一组合,就知道要下载哪一个具体版本的jar包。 - 仓库:jar包存放的地方,分为本地仓库(默认在用户目录的.m2/repository)、中央仓库(Maven官方维护,地址repo.maven.apache.org)和私服(公司内部搭建)。Maven找依赖的顺序是本地仓库优先,找不到就去中央仓库下载,下载完缓存到本地。
- POM:Project Object Model,就是项目根目录下的pom.xml文件,项目的依赖、插件、构建配置全写在里面。
这套机制用一句话总结:你只管声明"我要用什么",Maven负责"把它弄来并放在项目里"。后面配置本地仓库和阿里云镜像,就是为了让"把它弄来"这一步更快、更稳。
1.3 Maven和IDE是替代关系吗
经常有人问"Maven和IDEA有什么区别""IDEA里不是能直接跑Java吗,为什么还要装Maven"。这么说吧,IDE负责代码编写、调试、运行这种日常操作,Maven负责项目依赖管理、构建、打包这种工程化操作。IDEA内置了Maven插件,但它依赖你本地安装的Maven,或者你可以用IDEA自带的Bundled Maven,但那个版本有时候不太可控,也不方便命令行操作。实际工作里,你很可能需要同时用命令行和IDEA操作Maven,所以本地安装一份独立的是更合理的选择。搞清楚这个关系,后面在IDEA里配置Maven时你才知道自己在配什么。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 准备阶段:JDK版本、Maven版本和官方下载入口
2.1 Maven版本与JDK的对应关系
很多教程不提版本匹配,直接让你下载最新版,结果装完一运行就报错。Maven本身是用Java写的,它的运行依赖JDK,版本不匹配就会出现UnsupportedClassVersionError这类问题。我实测下来的稳定搭配是:
| Maven版本 | 最低JDK要求 | 推荐搭配 | 说明 |
|---|---|---|---|
| Maven 3.6.x | JDK 7+ | JDK 8 | 老项目常用,兼容性极好 |
| Maven 3.8.x | JDK 8+ | JDK 8 / 11 | 市面上最广泛的组合 |
| Maven 3.9.x | JDK 8+ | JDK 8 / 11 / 17 | 目前最推荐的生产版本 |
| Maven 4.x | JDK 17+ | JDK 17+ | 新特性多,但团队如果没有标准化,建议等一等 |
我的建议是,如果你是新项目,直接用Maven 3.9.x配JDK 8或JDK 17。JDK 8是历史原因留下的市场主流,JDK 17是当前长期支持的版本。Maven 4破解新但是生态兼容性还不够稳定,自己练手可以,生产环境先别当小白鼠。
2.2 JDK安装与JAVA_HOME配置,为什么Maven离不开它
Maven运行时第一件事就是找JAVA_HOME环境变量,找不到就直接退出,报错信息是"JAVA_HOME is not set"。所以装Maven之前必须确保JDK已装好,JAVA_HOME已配置。这里特别提醒一句:JAVA_HOME要指向JDK的安装目录,不是JDK里的bin目录,也不是JRE目录。比如Windows上JDK装在D:\Java\jdk-17,那JAVA_HOME就是D:\Java\jdk-17,PATH里再加一条%JAVA_HOME%\bin。
初学者最容易踩的坑是装了多个JDK版本,环境变量指来指去最后指向了一个不存在的目录。我的做法是:把所有JDK统一放在一个目录下,比如Windows的D:\Java\,Linux的/opt/java/,环境变量里只写JDK安装目录,不写具体文件名。这样以后想切换版本,只需要改JAVA_HOME一个变量。配置完要验证,命令行执行:
bash复制java -version
javac -version
这两条命令都能正常输出版本号,说明JDK环境没问题。顺便说一句,网上大量搜索词是"jdk环境变量配置失败"和"java环境变量配置详细教程",这个现象本身就说明很多人不是卡在Maven,而是卡在JDK上。如果你也遇到这个问题,最简单的排查方式就是先执行上面两条命令,确认JDK没问题再碰Maven。
2.3 Maven官方下载入口,别去第三方站
Maven的官方下载地址是maven.apache.org,进入后找Download链接,当前页面会给你两个选择:Binary tar.gz archive(Linux/macOS用)和Binary zip archive(Windows用)。这里务必认准官网域名,不要从乱七八糟的下载站拿安装包。一方面官网下载的是经过校验的稳定版本,另一方面第三方站经常捆绑其他软件,甚至有些是旧版本被改了配置的"魔改包"。
页面往下拉会列出所有历史版本,比如3.9.9、3.8.8这些。建议直接下载当前最新稳定版,不要下载带alpha、beta后缀的预览版。下载的时候注意文件大小,一个正常的Maven压缩包大概9MB左右,如果某网站显示的是几十KB的"绿色版",最好别用。
2.4 源码包和二进制包的区别
下载页面有Source和Binary两种包,初学者不用看源码包。Binary包是编译后的可直接运行版本,下载后解压就能用;Source包是源码,需要自己编译,那是想研究Maven内部实现的人才需要的。我见过有人下载了源码包折腾半天编译失败,其实用二进制包一分钟就搞定了。另外macOS用户还可以用包管理器安装Maven:
bash复制brew install maven
如果你在自己电脑上实验,用brew或者Linux下的apt、yum装反而更省事。但如果你想彻底弄懂Maven的配置逻辑,我还是建议手动解压安装一次,这样你对MAVEN_HOME、conf目录这些才有直观概念。
3. 安装与环境变量配置:从解压到命令行跑通
3.1 解压Maven并理解它的目录结构
Maven是绿色软件,解压就能用,不需要安装程序。解压后你会看到一堆目录,这里挑重点说:
- bin:存放Maven的可执行脚本,Windows下是mvn.cmd,Linux/macOS下是mvn,我们配置环境变量就是为了让命令在任意路径下都能找到这个目录。
- boot:包含Maven自身加载所需的类加载器,不需要动。
- conf:极其重要,Maven的全局配置文件settings.xml就在这里面,后面我们要改的就是它。
- lib:Maven运行所需的全部jar包,Maven依赖的类库都在这。
我习惯把Maven解压到一个不带空格的路径,比如Windows下的D:\Maven\apache-maven-3.9.9,Linux下的/opt/maven/apache-maven-3.9.9。路径带空格或者中文,之后在一些脚本、IDE配置里容易出幺蛾子,别给自己找麻烦。
3.2 配置MAVEN_HOME与PATH,原理其实很简单
环境变量这种东西,很多教程让你直接抄,从来不解释为什么。我简单讲清楚:MAVEN_HOME指向Maven的解压目录,PATH里加上%MAVEN_HOME%\bin,这样你在任何目录下执行mvn命令时,操作系统会去PATH列出的所有目录里找mvn这个可执行文件。配置方法如下。
Windows系统:
- 右键"此电脑"→"属性"→"高级系统设置"→"环境变量"。
- 在"系统变量"里点击"新建",变量名写MAVEN_HOME,变量值写Maven解压目录,比如D:\Maven\apache-maven-3.9.9。
- 找到Path变量,点击"编辑",新建一条%MAVEN_HOME%\bin。
- 所有窗口点"确定"保存。
Linux/macOS系统,编辑用户目录下的.bashrc或.zshrc文件,加入:
bash复制export MAVEN_HOME=/opt/maven/apache-maven-3.9.9
export PATH=$MAVEN_HOME/bin:$PATH
然后执行source ~/.bashrc或source ~/.zshrc让配置生效。
注意:Windows配置环境变量后,如果之前已经打开了命令行窗口,必须关闭重开,否则不会加载新的环境变量。我见过太多人配置完不重开窗口,然后跑来问"为什么我的mvn不是内部或外部命令"。
3.3 验证安装:mvn -v 到底应该输出什么
配置完成后,打开新开的命令行窗口执行:
bash复制mvn -v
正常输出大致是这样:
bash复制Apache Maven 3.9.9 (8e0959b68de4c1c2c0c4d5b8f1c8f0d0e2e3d5e)
Maven home: D:\Maven\apache-maven-3.9.9
Java version: 17.0.2, vendor: Oracle Corporation, runtime: D:\Java\jdk-17
Default locale: zh_CN, platform encoding: UTF-8
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
只要你看到Java version那行有内容,Maven home指向正确路径,就说明安装配置成功了。第一行那个很长的字符串是Maven版本号和构建信息,不用管它。如果输出的encoding是GBK或者乱码,大概率是Windows终端编码问题,不影响功能,介意的话可以看后面的配置方法解决。
3.4 环境变量配置的常见问题,一次说清楚
排查环境变量问题,记住三个关键点。
- 找不到mvn命令:要么是PATH没配好,要么是命令行窗口没重开。先在终端执行
echo %MAVEN_HOME%(Windows)或echo $MAVEN_HOME(Linux)看看变量有没有值,没有就回去检查系统变量。 - Maven报错提到JAVA_HOME:说明Maven找到了,但JDK变量有问题。确认JAVA_HOME指向JDK根目录,而不是JRE目录。
- JDK版本不符:如果你机器上装了多个JDK,Maven可能读到了错误的那一个。可以在Maven的bin目录下找到mvn.cmd(Windows)或mvn脚本(Linux),在文件开头临时加上
set JAVA_HOME=你的JDK路径,但更好的做法是在环境变量里把JAVA_HOME指对。
顺带说一个扩展知识:Git和Node.js也走同样的环境变量逻辑,网上搜索"git怎么配置环境变量""npm环境变量path配置"密度很高,原理跟Maven完全一样,无非是变量名从MAVEN_HOME换成了GIT_HOME和NODE_HOME。你配通了Maven,其他工具基本都是同一套思路。
4. 修改配置文件:settings.xml是Maven的"总遥控器"
4.1 settings.xml在哪里,全局配置和用户配置的区别
Maven的配置核心集中在settings.xml里,它有两个位置,作用范围不一样:
- 全局配置:在Maven解压目录的conf/settings.xml,影响这台机器上的所有用户。
- 用户配置:在用户目录下.m2/settings.xml,比如Windows的C:\Users\你的用户名.m2\settings.xml,只影响当前用户。
如果两处配置存在冲突,用户配置优先级更高。我的实际经验是,个人电脑上直接改全局配置即可,但公司多人共用一台构建机,最好用用户配置,避免互相影响。终端执行mvn help:effective-settings可以看到最终生效的配置合并结果,这个命令在排查问题时非常有用。
4.2 配置本地仓库路径,别再挤在C盘了
Maven默认的本地仓库在用户目录的.m2/repository下,Windows就是C:\Users\你的用户名.m2\repository。问题很明显:C盘空间有限,而且重装系统容易丢,所以基本每个人都会改这个路径。在settings.xml里找到localRepository这个被注释掉的节点,改成你想要的目录:
xml复制<localRepository>D:\Maven\repository</localRepository>
这样说可能不够直观——我举个实际例子。你不改这个路径,用Maven拉一个Spring Boot项目依赖,几个月下来本地仓库随随便便几个GB,C盘的可用空间肉眼可见地往下掉。而且如果你习惯了把所有开发工具、仓库统一放到D盘,以后备份、迁移环境非常方便,直接把整个Maven目录拷走就完了。
Linux/macOS下我一般放在/opt/maven/repository或~/maven-repo。配置好后最直接的验证方式是mvn clean compile随便构建一个项目,然后看看你指定的目录下有没有生成jar包缓存。
4.3 配置阿里云仓库镜像,解决依赖下载慢的世纪难题
默认Maven从中央仓库下载依赖,在国内的连接速度真的是一言难尽,几百KB的jar包卡半天。阿里云Maven仓库是目前最主流的国内镜像,配置方法是在settings.xml里的mirrors节点下添加:
xml复制<mirror>
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
mirrorOf配成central,意思是所有对中央仓库的请求都走这个镜像。如果你还用了其他私服或镜像,可以用*匹配所有仓库,但我不建议一上来就用*,因为有些团队内部私服的包不应该走阿里云。日常开发用central就够了。
阿里云这里还提供几个细分仓库,比如public是公共仓库,google对应Google的依赖,spring对应Spring的依赖。vpublic实际上是一个聚合地址,涵盖了central和jcenter等常用源,普通项目一个public就够用。配置完建议直接跑一次依赖下载,速度提升是肉眼可见的。
4.4 设置JDK编译版本和项目编码
settings.xml里的profiles节点可以配置一个全局的JDK编译版本,避免每次新建项目都要手动指定。实际开发里最烦的错误就是本机JDK是17,项目用了JDK 8语法,Maven默认却按17编译,结果别人拿JDK 8跑直接编译失败。通过profile统一固定编译版本能省掉很多沟通成本:
xml复制<profiles>
<profile>
<id>jdk-8</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</profile>
</profiles>
source和target指编译使用的Java语法版本,sourceEncoding指定源码编码为UTF-8。这里特别强调编码问题:项目统一UTF-8,能避免在Windows中文系统上出现的"乱码马克思"问题。如果你在Windows上mvn compile控制台输出乱码,把编码配置补上,大概率能解决。注意这里配置的是全局默认值,单个项目的pom.xml里如果写了自己的properties,以项目里的为准。
4.5 配置代理和其他常用参数
某些公司网络环境通过代理访问外网,settings.xml里也支持配置代理,在proxies节点编写。不过现在代理场景比过去少很多,这里简单提一下,需要时查官方文档即可。我真正想提醒你的是这两个参数:
xml复制<settings>
<offline>false</offline>
<pluginGroups>
<pluginGroup>org.apache.maven.plugins</pluginGroup>
</pluginGroups>
</settings>
offline配置控制是否离线运行。平时保持false,如果某天没网但依赖已经全部在本地仓库了,可以临时改成true加速。pluginGroups默认就包含了org.apache.maven.plugins,正常不用动。改settings.xml前后记得备份一份,改坏了能快速回滚,这是我最想强调的习惯。
4.6 settings.xml修改后是否生效,如何确认
经常有人说"我改了配置没反应",原因基本都是没重开命令行或IDE。Maven每次运行都会重新读取settings.xml,所以不存在缓存问题,只要确保运行环境用的是你改的那份配置即可。
想验证当前生效的配置:
bash复制mvn help:effective-settings
它会输出所有配置合并后的最终结果,重点看localRepository和mirrors节点,和你改的一致就说明生效了。这一步强烈建议做,比猜"应该生效了吧"要靠谱得多。
5. 在IDEA里集成Maven,这才是日常开发主战场
5.1 IDEA中指定Maven home、配置文件、本地仓库
实际开发中你不可能一直敲命令,IDEA里集成Maven是必然环节。打开IDEA,进入Settings(Windows是File→Settings,macOS是IntelliJ IDEA→Preferences),搜索Maven,找到Build Tools→Maven,这里有三个关键位置:
- Maven home path:选择你本地Maven的解压目录,替代IDEA自带的Bundled Maven。选好后旁边的Version会自动识别。
- User settings file:选择Maven的settings.xml路径,默认指向用户目录下的.m2/settings.xml。如果你改过路径,这里要手动指定。
- Local repository:设置本地仓库路径,正常情况下它会自动读取settings.xml里的localRepository值,你只要确认一下显示位置是否正确。
我这几年配置IDEA的思路是:Maven home里选择到apache-maven-3.9.9这个根目录;User settings file直接指向conf/settings.xml或.m2/settings.xml的路径;Local repository指向D:\Maven\repository;右边还有个"Importing"选项,下面的Automatically import等选项保持默认即可。新手最容易犯的错是把Maven home path填成bin目录,或者把User settings file填成jar包路径,这两个都是必踩的坑。
5.2 用IDEA创建一个最简单的Maven项目
配置完成后,我们实际建一个项目验证整条链路。步骤是:File→New→Project,左侧选Maven,Project SDK选择你本地的JDK,点击Next后就创建了一个基础Maven工程。新生成的目录自动带有src/main/java、src/test/java和pom.xml。现在我们在pom.xml里加一个常用依赖:
xml复制<dependencies>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.25</version>
</dependency>
</dependencies>
保存后右下角弹出一个Maven图标提示要Reload Project,点一下。同时IDEA右侧栏会出现一个"Maven"工具的标签页,展开后能看到项目的生命周期:clean、validate、compile、test、package、verify、install、deploy。双击compile,下方的控制台开始输出构建日志,第一次会因为要下载依赖慢一点,之后就快了。
构建成功后,本地仓库D:\Maven\repository里会新增hutool相关的jar包目录。这一步跑通,说明你的Maven从配置到使用的是闭环的,可以正常开发了。
5.3 Maven依赖管理与"mvnrepository"搜索实践
实际项目里需要加什么依赖,没人背得住全部坐标,最常用的检索入口是mvnrepository.com这个网站。它是Maven中央仓库的索引站,我一般习惯叫它"maven依赖速查表"。打开后搜索关键词如"hutool",会出现对应版本列表,点进去就能看到坐标信息,直接复制到pom.xml即可。
这里给你一个搜索依赖的完整建议:第一步在mvnrepository搜需要的库;第二步看使用人数较多的版本,不要盲选最新版,因为有些新版本引入了你没预料到的API变化;第三步重点确认groupId和artifactId拼写,这种地方一个字母错了Maven就会下载失败;第四步把版本号复制到pom.xml,然后让IDEA做一次Reload。熟练之后,这套流程大概半分钟就能搞定一个依赖。
5.4 IDEA中Maven面板常用操作
IDEA右侧的Maven面板不只是看看用的,它有几个高频操作值得你深挖:
- Reimport All Reload All Maven Projects:修改pom.xml后重新加载依赖,相当于命令行里跑了一遍mvn dependency:resolve。
- Generate Sources and Update Folders:让IDEA自动生成target目录下的源码目录。
- Toggle Skip Tests:打包时跳过测试,勾选后在package阶段不会执行test。
- Execute Maven Goal:可以手动执行任意Maven命令,在这里输入
mvn clean install -DskipTests也行。
我日常构建的策略是:修改依赖就点Reload;改完代码本地验证,就在面板里直接双击test或package;要交付产物,打开Maven面板执行package,构建出来的jar包在项目的target目录下。真正到服务器部署时,我反而更习惯直接用命令行mvn打包,因为构建机没有IDEA。
6. 常见问题与排查技巧实录
6.1 高频问题速查表
我把这些年自己踩过、帮别人排查过的问题整理成表,尽量做到一眼定位。
| 问题现象 | 可能原因 | 排查方法 |
|---|---|---|
| mvn不是内部或外部命令 | PATH未配置或未重开命令行 | 检查MAVEN_HOME和PATH,重开终端 |
| 报错JAVA_HOME is not set | JDK环境变量未配置 | 设置JAVA_HOME指向JDK根目录 |
| 下载依赖极慢或卡住 | 未配置国内镜像 | 在settings.xml添加阿里云镜像 |
| 依赖冲突报错,版本混乱 | 不同库传递依赖了不同版本 | 用mvn dependency:tree查看依赖树并排除 |
| 控制台中文乱码 | 编码未统一为UTF-8 | 在settings.xml配置sourceEncoding,IDE控制台编码调成UTF-8 |
| 编译报错,语法版本不匹配 | Maven编译版本与项目不匹配 | 在pom.xml或settings.xml配置maven.compiler.source/target |
| 本地仓库缺失某个jar | 上次下载中断,本地缓存损坏 | 删除本地仓库对应目录,重新执行构建 |
| IDEA中Maven插件加载失败 | Maven home或settings路径配置有误 | 检查IDEA中Maven设置的各个路径 |
问题永远比想象中的多,但90%都集中在上面的表格里。记住排查的原则:先看命令行能否跑通mvn -v,再看settings.xml是否生效,最后才查具体项目配置。
6.2 实际排查案例:从"永远失败的编译"到"3分钟定位"
前几天有个同事找我,说IDEA里执行mvn clean compile总是失败,报错信息里出现"Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin"。我第一反应不是看代码,而是让他直接在终端跑mvn help:effective-settings看配置。结果发现他的用户目录下多了一个.m2/settings.xml,里面localRepository指向了一个不存在的E盘路径,而IDEA读的是这个用户配置,不是Maven安装目录下的全局配置。解决办法很简单:要么把用户配置删掉,要么把里面的路径改正确。这个案例说明什么问题?排查配置问题,永远要从"当前实际生效的是哪份配置文件"入手,不要想当然地认为你改的那份就是被读到的那份。
6.3 独家避坑技巧:环境配置的思路比步骤重要
踩过几次坑之后,我总结出几条适用于所有Java工具链环境配置的思路:
- 安装路径不要有空格和中文,这是个通用规则,不光是Maven,JDK、Tomcat、Node.js全都适用。
- 每次改完环境变量,必须重开一个新终端验证,不要在旧终端里测。
- 配置settings.xml之前先备份原始文件,我用命令行执行
copy conf\settings.xml conf\settings.xml.bak,或者在Linux里执行cp conf/settings.xml conf/settings.xml.bak,出问题立马回滚。 - 不要在pom.xml和settings.xml里重复配置同一个属性,新手经常在pom.xml里写一遍maven.compiler.source,又在settings.xml的profile里写一遍,两边不完全一致时反而让人困惑。我的习惯是全局默认放settings.xml,单个项目有特殊要求才在pom.xml覆盖。
- 下载依赖过程中遇到失败就删掉本地仓库里对应的.lastUpdated文件再重新构建,不要自己去网上手工下载jar包放进仓库,那样反而容易造成版本混乱。
6.4 从依赖管理再往前走一步
等你把Maven这套环境配好、依赖也管理顺了,下一步就该关注Maven背后的构建哲学。很多人用Maven只是在pom.xml里堆依赖,完全忽略了clean、compile、test、package、install这几个生命周期阶段到底在干什么。我的建议是,有空时在Maven面板里挨个执行一遍,看看每个阶段生成了什么文件,再想想如果哪天构建产物丢了、测试挂了,你能从哪里下手排查。
还有一点值得提:Maven中央仓库和阿里云镜像都有网页版入口,你可以在浏览器里直接搜索某个依赖是否存在、有哪些版本。中央仓库的官方搜索入口是search.maven.org,第三方索引站mvnrepository也是很常用的入口。这类网页版入口适合快速确认依赖坐标,或者查看一个库的最新版本,是我日常开发离不开的工具。
最后分享一个我实际使用的小技巧:在命令行执行mvn clean install -DskipTests时,如果你发现某些模块的javadoc构建报错,但你不关心文档,可以再加一个-Dmaven.javadoc.skip=true跳过。这套组合命令我几乎每天都会用至少一次,比在IDEA里点按钮要顺手得多。等你把Maven用得足够熟,你会发现自己对Java项目的掌控感完全不一样了,构建不再是一个"玄学环节",而是你想让它做什么、它就做什么的确定过程。
