
Maven入门基础
验证(validate):验证项目是否正确配置。 编译(compile):将源代码编译成.class 文件。 测试(test):运行单元测试框架(如 JUnit)。 打包(package):将编译好的代码打包成 JAR/WAR 文件。 检查(verify):检查测试结果,确保质量达标。 安装(install):将打包后的项目安装到本地仓库。 部署(deploy):将项目部署到远程仓库或服务器。 中央仓库:Maven 下载第三方模块的主要位置。 私有仓库:用于公司内部模块管理。 本地仓库:用于本地开发和测试。 打开 Settings。 选择 Build, Execution, Deployment > Build Tools > Maven。 配置 Maven home path。
发布日期:2021-05-16 15:02:42
浏览次数:20
分类:精选文章
本文共 2155 字,大约阅读时间需要 7 分钟。
为什么使用 Maven ?
在项目开发过程中,我们经常需要依赖第三方的jar包,例如 JDBC 驱动:mysql-connector-java。手动下载并配置这些jar包是一个繁琐的过程,尤其是在多个项目之间切换时,需要重复类似的配置步骤。这种情况下, Maven 能够帮助我们自动下载并管理依赖,减少手动配置的工作量。
Maven 简介
Maven 是一个标准化的 Java 项目管理和构建工具,主要解决依赖管理问题。它提供了一套标准化的项目结构和构建流程,适用于多种开发环境。Maven 的核心功能包括依赖管理、构建生命周期和标准化的项目布局。
Maven 标准目录结构
一个使用 Maven 管理的 Java 项目通常包含以下目录结构:
a-maven-project├── pom.xml├── src│ ├── main│ │ ├── java│ │ └── resources│ └── test│ ├── java│ └── resources└── target
目录说明:
- /src/main/java:项目的 Java 源代码目录
- /src/main/resources:项目的资源文件(如 properties 文件、Spring 配置文件等)
- /src/test/java:项目的测试代码目录
- /src/test/resources:测试项目的资源文件
- /src/main/webapp:Web 应用文件目录
- /target:构建输出目录
Maven POM
POM(Project Object Model,项目对象模型)是 Maven 工程的基本单元,是一个 XML 文件,用于描述项目的构建过程和依赖管理。典型的 POM 文件结构如下:
4.0.0 org.example untitled2 1.0-SNAPSHOT
POM 元素说明:
- modelVersion:项目模型版本,通常为 4.0.0。
- groupId:项目组的标识符,通常对应于组织的包名。
- artifactId:项目的唯一标识符,通常对应于项目的名称。
- version:项目的版本号。
Maven 构建生命周期
Maven 的构建生命周期定义了一个完整的项目构建流程。典型的生命周期包括以下阶段:
常用 Maven 命令
以下是一些常用的 Maven 命令示例:
mvn compile
:编译项目的源代码。mvn test
:运行测试。mvn install
:将项目安装到本地仓库。mvn deploy
:将项目部署到远程仓库。mvn package
:将项目打包。mvn tomcat:run
:启动 Tomcat 服务器。
添加依赖
在项目的 POM 文件中,可以通过添加依赖来管理第三方模块。例如,添加 JUnit 和 MySQL JDBC 驱动的依赖:
org.junit.jupiter junit-jupiter-api 5.3.2 test mysql mysql-connector-java 5.1.48 runtime
依赖说明:
- compile:在编译阶段使用。
- test:在测试阶段使用。
- runtime:在运行时使用。
- provided:在编译时使用,但运行时由 JDK 或服务器提供。
Maven 仓库
Maven 的仓库是存储第三方模块的位置。主要有以下类型的仓库:
本地仓库配置:
/path/to/MyLocalRepository
Idea 设置 Maven
在 Idea 中配置 Maven:
通过以上配置,您可以在 Idea 中轻松使用 Maven 管理项目。
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年04月20日 19时12分42秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
laravel设置全局方法
2023-01-30
Laravel集合探学系列——添加扩展macro策略(一)
2023-01-30
Laravel项目宝塔部署全攻略:从0到1的实战指南
2023-01-30
laravl 文件存储云存储
2023-01-30
LARGE_INTEGER
2023-01-30
LaTeX 在线编辑器(LaTeX online editors)
2023-01-30
latex不能识别eps图片
2023-01-30
LaTeX介绍-ChatGPT4o作答
2023-01-30
LaTeX伪代码编辑
2023-01-30
latex小红心
2023-01-30
Latex相关文章
2023-01-30
Launcher3无图标问题
2023-01-30
Laurent级数与奇点分析
2023-01-30
layer 独立使用时,关闭父窗口
2023-01-30
layer.js实现相册预览
2023-01-30
layer.msg is not a function
2023-01-30
Layout Team
2023-01-30
layout_weight 的解释及使用
2023-01-30
Layui 字段集区块、面板和Tab选项卡
2023-01-30