✅ 1. Maven 在开发环境中有没有用?
✅ 结论:非常有用!不仅仅是打包用的
即使在开发环境中,Maven 也承担了以下关键职责:
| 功能 | 用处 |
|---|---|
| 📦 依赖管理 | 自动下载 jar 包,不用手动加 classpath |
| 🧱 项目构建结构 | 统一的标准目录结构,方便协作(如 src/main/java) |
| 🛠 插件系统 | Lombok、代码生成器、资源处理等都通过插件运行 |
| 🧪 测试和覆盖率集成 | 使用 Surefire / Jacoco 插件 |
| ☁️ 项目发布 | 一键打包上传(Nexus、Aliyun 等) |
✅ 换句话说:你即使不打包,它也管理着你开发中 80% 的环境基础!
✅ 2. 点击绿色 Run 按钮(Run main),Maven 的依赖是怎么找到的?
👉 IDEA 实际是“利用 Maven 下载的依赖包”,然后自己调用 JVM 来运行代码。
运行流程如下:
- 你点击绿色
Run按钮 - IDEA 编译代码,检查你模块依赖了哪些 jar 包
- 这些依赖来自:Maven 已下载的 jar 包(本地仓库)
- IDEA 把这些
.jar都加入到运行的 classpath 中 - 启动 JVM,运行
main()方法
🔍 所以:
💡 点击 Run 并不走 Maven,但它“复用了 Maven 下载的依赖”
✅ 3. 这些依赖包放在哪里?Run 时去哪找?
放在本地 Maven 仓库目录:
一般是这个路径(你可以在 mvn -v 看到):
Windows: C:\Users\你的用户名\.m2\repository
Linux/macOS: ~/.m2/repository
IDEA 会自动根据 pom.xml 把依赖包下载到 .m2 里,并加入到运行时路径(classpath)中。
✅ 4. IDEA 左侧 External Libraries 中显示的依赖包和 Maven 中 Dependencies 是同一个吗?
是的!✅ 完全是同一个。
| 左侧 External Libraries | 等价于 pom.xml 中 <dependencies> |
|---|---|
显示的是 .m2 目录下的依赖包路径 | Maven 依赖管理结果 |
| 被 IDEA 加入 classpath | 和 Maven 构建时一致 |
🔍 IDEA 是根据 pom.xml 中的 <dependencies> 解析依赖图,自动帮你列出所有直接和间接依赖的 jar 包。
✅ 可视化说明一下:
你写了这个:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
</dependency>
👉 Maven 会:
-
下载
lombok-1.18.30.jar到.m2/repository/org/projectlombok/ -
IDEA 会把这个依赖加入到:
- External Libraries 中展示
- Run 和 Build 的 classpath 中使用
✅ 总结一张表给你:
| 操作 | Maven 有参与吗? | 依赖来源 | 是否用了 Maven 本地库 |
|---|---|---|---|
Build → Build Project | ❌ | IDEA 内部编译器 | ✅ 是(用了 Maven 下载的 jar) |
Run main() | ❌ | IDEA 组装 classpath | ✅ 是(用了 Maven 下载的 jar) |
Maven compile | ✅ | Maven 编译器 | ✅ 是(Maven 本地仓库) |
mvn clean package | ✅ | Maven 编译器 + 插件 | ✅ 是(严格使用 Maven) |
✅ 最佳实践建议:
- 🧩 开发阶段 90% 情况都可以只依赖 Maven 管理依赖 + IDEA 运行
- 🛠 如果你要用插件、打包、测试覆盖率,一定要用
Maven 面板来跑 - ☁️ 项目最终交付/部署前,一定走
mvn clean package或install流程测试完整性

被折叠的 条评论
为什么被折叠?



