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

JavaSE核心知识点04工具04-03(Maven)

🤟致敬读者

  • 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉

📘博主相关

  • 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息

文章目录

    • JavaSE核心知识点04工具04-03(Maven)
      • 一、Maven 是什么?
      • 二、核心概念:POM
        • 示例 `pom.xml` 结构:
      • 三、安装Maven
        • 1. 下载
        • 2. 配置环境变量
        • 3. 验证安装
      • 四、创建第一个Maven项目
        • 1. 命令行生成项目
        • 2. 生成的项目结构
      • 五、依赖管理
        • 1. 如何添加依赖?
        • 2. 依赖范围(Scope)
      • 六、Maven 生命周期和常用命令
        • 常用组合命令:
      • 七、常见问题
        • 1. 依赖下载慢?
        • 2. 依赖冲突?
      • 八、学习资源推荐
      • 总结


📃文章前言

  • 🔷文章均为学习工作中整理的笔记。
  • 🔶如有错误请指正,共同学习进步。

JavaSE核心知识点04工具04-03(Maven)

作为Java小白,学习Maven是一个很好的起点,因为它是Java生态中最常用的项目管理工具之一。我会从基础概念到实际使用逐步讲解,尽量通俗易懂。

在这里插入图片描述


一、Maven 是什么?

Maven 是一个 项目管理工具,主要帮助开发者:

  1. 管理依赖(自动下载和管理第三方库,比如JUnit、Spring等)
  2. 标准化项目结构(统一目录格式,方便团队协作)
  3. 构建项目(编译、测试、打包、部署等一键操作)
  4. 管理项目信息(文档、报告、版本等)

二、核心概念:POM

POM(Project Object Model) 是Maven的核心配置文件,名为 pom.xml。它定义了:

  • 项目的基本信息(名称、版本)
  • 依赖的第三方库
  • 插件(如编译、打包工具)
  • 构建生命周期(如何编译、测试、打包)
示例 pom.xml 结构:
<project><!-- 项目基本信息 --><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId>  <!-- 组织名,如公司域名倒写 --><artifactId>my-project</artifactId>  <!-- 项目名 --><version>1.0.0</version>  <!-- 版本号 --><!-- 依赖管理 --><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency></dependencies><!-- 构建配置(如插件) --><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>11</source>  <!-- Java版本 --><target>11</target></configuration></plugin></plugins></build>
</project>

三、安装Maven

1. 下载
  • 官网:https://maven.apache.org/download.cgi
  • 选择 Binary zip archive 下载。
2. 配置环境变量
  • 解压到本地目录(如 C:\maven
  • 配置环境变量:
    • MAVEN_HOME: 指向Maven根目录(如 C:\maven\apache-maven-3.8.6
    • Path: 添加 %MAVEN_HOME%\bin
3. 验证安装

打开命令行,输入:

mvn -v

如果显示Maven版本信息,说明安装成功!


四、创建第一个Maven项目

1. 命令行生成项目

Maven提供了 项目模板(archetype),快速生成标准项目结构:

mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
  • groupId: 组织名(如公司域名)
  • artifactId: 项目名
  • archetypeArtifactId: 模板类型(这里用最简单的quickstart
2. 生成的项目结构
my-app/
├── pom.xml          # 项目配置文件
└── src/├── main/│   └── java/    # 主代码目录└── test/└── java/   # 测试代码目录

五、依赖管理

1. 如何添加依赖?

pom.xml<dependencies> 标签内添加需要的库。例如添加JUnit:

<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope>
</dependency>

Maven会自动从 中央仓库(默认的公共仓库)下载依赖到本地(默认路径:~/.m2/repository)。

2. 依赖范围(Scope)
  • compile(默认): 编译、测试、运行都需要
  • test: 仅测试时需要(如JUnit)
  • provided: 由JDK或容器提供(如Servlet API)

六、Maven 生命周期和常用命令

Maven的构建过程分为 生命周期阶段,常用命令如下:

命令作用
mvn clean清理生成的目录(如target/
mvn compile编译主代码
mvn test运行测试
mvn package打包(生成JAR/WAR文件)
mvn install安装到本地仓库(供其他项目依赖)
mvn deploy部署到远程仓库(如公司私服)
常用组合命令:
mvn clean package   # 清理并打包
mvn clean install   # 清理并安装到本地仓库

七、常见问题

1. 依赖下载慢?

Maven默认从国外中央仓库下载,国内可配置镜像(如阿里云):
~/.m2/settings.xml 中添加:

<mirror><id>aliyun</id><mirrorOf>*</mirrorOf><name>Aliyun Maven Mirror</name><url>https://maven.aliyun.com/repository/public</url>
</mirror>
2. 依赖冲突?

如果多个依赖版本不兼容,可以用 <exclusions> 排除冲突的依赖:

<dependency><groupId>com.example</groupId><artifactId>some-library</artifactId><version>1.0</version><exclusions><exclusion><groupId>conflicting-group</groupId><artifactId>conflicting-artifact</artifactId></exclusion></exclusions>
</dependency>

八、学习资源推荐

  1. 官方文档: https://maven.apache.org/guides/
  2. 《Maven实战》: 许晓斌著,适合深入理解
  3. 在线教程:
    • https://www.tutorialspoint.com/maven/
    • https://www.baeldung.com/maven

总结

Maven通过 pom.xml 统一管理项目,解决了依赖混乱、构建流程复杂的问题。作为新手,先从以下步骤入手:

  1. 学会用 pom.xml 添加依赖
  2. 掌握 mvn compile/test/package 等基础命令
  3. 理解标准项目结构

遇到问题多查文档,熟练后可以进一步学习多模块项目、插件开发等高级功能。加油!



📜文末寄语

  • 🟠关注我,获取更多内容。
  • 🟡技术动态、实战教程、问题解决方案等内容持续更新中。
  • 🟢《全栈知识库》技术交流和分享社区,集结全栈各领域开发者,期待你的加入。
  • 🔵​加入开发者的《专属社群》,分享交流,技术之路不再孤独,一起变强。
  • 🟣点击下方名片获取更多内容🍭🍭🍭👇

相关文章:

  • Electron 桌面程序读取dll动态库
  • 【React】-组件中实现高性能鼠标跟随提示框的完整优化过程
  • 模板应用更新同步到所有开发中的应用
  • 图片压缩工具 | Electron+Vue3+Rsbuild开发桌面应用
  • React useEffect和useEffectLa
  • 鸿蒙OSUniApp 实现带搜索功能的下拉菜单#三方框架 #Uniapp
  • element的el-table翻页选中功能
  • Kubernetes Admission Controller (准入控制器)详解:作用、原理、常见类型
  • DRF的使用
  • 计算机系统结构-第四章节-背诵
  • openpi π₀ 项目部署运行逻辑(四)——机器人主控程序 main.py — aloha_real
  • 使用Gemini, LangChain, Gradio打造一个书籍推荐系统 (第三部分)
  • MySQL问题:主要索引类型(聚簇、辅助、覆盖、前缀)
  • Debian 11 之使用hostapd与dnsmasq进行AP设置
  • C++ STL 容器:List 深度解析与实践指南
  • 手机收不到WiFi,手动输入WiFi名称进行连接不不行,可能是WiFi频道设置不对
  • 仿真环境中机器人抓取与操作上手指南
  • 从零实现本地语音识别(FunASR)
  • Vue3 封装el-table组件
  • 13. CSS定位与伪类/伪元素
  • 运城 网站建设/优书网首页
  • 福州网站建设信息/app渠道推广
  • j建设网站备案流程/网络推广的工作内容
  • 建设厅网站查询三类人员/友情链接怎么互换
  • 大理公司网站建设/电商网络推广怎么做
  • wordpress快站 独立Ip/可以免费推广的平台