maven--01
Maven 是一个项目管理工具,它包含了一个项目对象模型(POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
Maven 能解决什么问题
1、我们需要引用各种 jar 包,尤其是比较大的工程,引用的 jar 包往往有几十个乃至上百个, 每用到一种jar 包,都需要手动引入工程目录,而且经常遇到各种让人抓狂的 jar 包冲突,版本冲突。
2、我们写好的Java 文件,可是只懂 0 和 1 的电脑却完全读不懂,需要将它编译成二进制字节码。好歹现在这项工作可以由各种集成开发工具帮我们完成,Eclipse、IDEA 等都可以将代码即时编译。
3、世界上没有不存在 bug 的代码,为了减少 bug,因此写完了代码,我们还要写一些单元测试,然后一个个的运行来检验代码质量。
4、我们后面还需要把代码与各种配置文件、资源整合到一起,定型 打包,如果是 web 项目,还需要将之发布到服务器。
Maven 的两个经典作用
Maven 的依赖管理
Maven 的一个核心特性就是依赖管理。当我们涉及到多模块的项目(包含成百个模块或者子项目),管理依赖就变成
一项困难的任务。Maven 展示出了它对处理这种情形的高度控制。
传统的WEB 项目中,我们必须将工程所依赖的 jar 包复制到工程中,导致了工程的变得很大。

通过分析发现:maven 工程中不直接将jar 包导入到工程中,而是通过在 pom.xml 文件中添加所需jar 包
的坐标,这样就很好的避免了jar 直接引入进来,在需要用到jar 包的时候,只要查找pom.xml 文件,
再通过 pom.xml文件中的坐标,到一个专门用于”存放 jar包的仓库”(maven仓库)中根据坐标从而找
到这些jar 包,再把这些jar 包拿去运行。
项目的一键构建:
我们的项目,往往都要经历编译、测试、运行、打包、安装 ,部署等一系列过程。什么
是构建?
指的是项目从编译、测试、运行、打包、安装 ,部署整个过程都交给 maven 进行管理,这个过
程称为构建。
一键构建
指的是整个构建过程,使用 maven 一个命令可以轻松完成整个工作。

src/main/java —— 存放项目的.java 文件
src/main/resources —— 存放项目资源文件,如 spring,hibernate 配置文件
src/test/java —— 存放所有单元测试.java 文件,如JUnit 测试类
src/test/resources —— 测试资源文件
target —— 项目输出位置,编译后的class 文件会输出到此目录
pom.xml——maven 项目核心配置文件
如果是普通的java 项目,那么就没有webapp 目录。
常用命令
mvn compile
compile 是 maven 工程的编译命令,作用是将
src/main/java 下的文件编译为 class 文件输出到 target目录
下。mvn test
test 是maven 工程的测试命令 mvn test,会执行
src/test/java 下的单元测试类。
mvn clean
clean 是maven 工程的清理命令,执行 clean 会删除target
目录及内容。
mvn package
package 是maven 工程的打包命令,对于java 工程执行
package 打成jar 包,对于web 工程打成war包。
mvn install
install 是maven 工程的安装命令,执行install 将maven 打成
jar 包或 war 包发布到本地仓库。
mvn deploy
deploy是maven的发布命令,执行该命令会将工程发布到私
服或者中央仓库
生命周期 :
Clean Lifecycle 在进行真正的构建之前进行一些清理工
作。对应的是clean命令
Default Lifecycle 构建的核心部分,编译,测试,打包,
部署等等。对应的是compile -> test -> package -
> install这一组命令
Site Lifecycle 生成项目报告,站点,发布站点。
maven配置文件:镜像以及jdk版本以及本地仓库设置:
<localRepository>D:\repository</localRepository>
<mirrors>
<mirror>
<id>aliyun</id>
<name>aliyun Maven</name>
<mirrorOf>*</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>
<!-- 全局配置JDK版本 --> <profiles> <profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile> </profiles>
IDEA集成:全局配置

作者:隔壁老郭
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
Java入门到入坟
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南