目录
💡【开发哲学共勉】
Maven 构建流程,从验证到部署环环相扣,开发之路也需步步为营— —稳扎稳打,方能得到可靠项目
--- 艺杯羹 (๑•̀ㅂ•́)و✧前言
本文将聚焦 Maven 工程类型、构建生命周期及依赖管理等核心知识,用极简结构梳理从项目搭建到远程部署的关键要点,助开发者快速掌握这一开发利器的实用技能
个人主页:艺杯羹
系列专栏:Maven
1. 🏗️Maven工程的类型和结构
1.1. Maven工程类型
-
POM工程
POM工程是逻辑工程(不写java代码),Maven并不会对该类型工程做打包处理,这些工程往往不包含具体的业务,而是用来整合其他工程的。 -
JAR工程
普通Java工程,在打包时会将项目打成jar包 -
WAR工程
JAVA Web工程,在打包时会将项目打成war包
1.2. Maven工程结构
接下来我们通过一个WAR工程学习Maven工程的结构
这个文件目录我放在了这个文章上方,如果想要的话,随时下载哦~
文件目录结构:

-
src:源代码
-
target:编译生成的文件
-
pom.xml:Maven工程配置文件,如坐标信息等
项目结构:

-
src/main/java:存放项目的java 文件
-
src/main/resources:存放项目资源文件,如配置文件
-
src/test/java:存放项目的测试文件
-
src/test/resources:存放测试时的资源文件
-
webapp:前端的东西
2. 🚢一键构建
2. 1. 项目的生命周期
使用maven完成项目的构建的过程中,包括:验证、编译、测试、打包、部署等过程,maven将这些过程规范为项目构建的生命周期

构建生命周期
| 生命周期 | 所做工作 |
|---|---|
| 验证 validate | 验证项目是否正确 |
| 编译 compile | 源代码编译 |
| 测试 Test | 使用适当的单元测试框架(例如junit)运行测试。(测试零件) |
| 打包 package | 创建JAR/WAR包 |
| 检查 verify | 对集成测试的结果进行检查,以保证质量达标。(整体测试) |
| 安装 install | 安装打包的项目到本地仓库,以供其他项目使用。 |
| 部署 deploy | 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程。 |
maven有三套相互独立的生命周期。分为是构建生命周期,clean生命周期(清理构建后的文件)、site生命周期(生成项目报告)。作为开发人员我们一般重点学习构建生命周期即可。
2.2. Maven常用命令
在Maven构建项目的每一步都可以使用一句简单的命令完成,接下来我们学习这些命令:
编译之前都要清空一下
| 命令 | 作用 |
|---|---|
| mvn clean | 清除编译的class文件,即删除target目录。 |
| mvn validate | 验证项目是否正确(编译,一般不用,因为编译器会检查) |
| mvn compile | 编译maven项目,将target目录重新编译 |
| mvn test | 编译maven项目及运行测试文件 |
| mvn package | 编译maven项目及运行测试文件,并打包 |
| mvn install | 编译maven项目及运行测试文件并打包,并发布到本地仓库 |
| mvn deploy | 部署项目到远程仓库 |
| mvn tomcat7:run | 使用tomcat运行项目 |
Maven依赖插件来执行命令,比如clean、validate等命令是maven自带的,tomcat7命令是引入的第三方插件。
仓库的位置

3. 🔗依赖管理
3.1. 📦Maven仓库类型

3.1.1. 本地仓库
本地仓库指用户计算机中的文件夹。用来存储从远程仓库或中央仓库下载的jar包,只有下载到本地仓库的jar包才能使用,项目使用jar包时优先从本地仓库查找。
3.1.2. 远程仓库
远程仓库一般指私服,它是架设在局域网的仓库服务,可以从中央仓库下载资源,供局域网使用,从而减少每个程序员都从中央仓库下载浪费的带宽。
如果项目需要的jar包本地仓库没有,则会去远程仓库下载,下载到本地仓库即可使用。
远程仓库不是必须配置的,如果本地仓库没有jar包,也没有配置远程仓库,则会直接从中央仓库下载。
没有远程仓库,就会直接去找中央仓库
3.1.3. 中央仓库
中央仓库是互联网上的服务器,是Maven提供的最大的仓库,里面拥有最全的jar包资源。
如果项目需要的jar包,本地仓库和远程仓库都没有,则会去中央仓库下载,下载到本地仓库使用。
Maven中央仓库访问页面:https://mvnrepository.com/
中央仓库访问速度较慢,所以要配置镜像来让加快访问,如阿里镜像、华为镜像等。
镜像:他们服务器的速度快,帮我们下载好后,传到文件里
3.2. ⚙️Maven配置文件
默认是仓库是放在C盘的可是,C盘的资源很宝贵,所以就要修改一下存放的位置
本地仓库的默认位置是${user.dir}/.m2/repository,${user.dir}表示 windows用户目录,我们可以通过修改${MAVEN_HOME}\conf\settings.xml,修改本地仓库的位置。
3.2.1. 配置本地仓库
conf目录下的settings.xml

在<settings>中添加如下标签:
<!-- 本地仓库路径 -->
<localRepository>e://repository</localRepository>

测试是否修改成功位置
在项目目录内中的地址栏,输入cmd

先输入mvn clean 命令,先清除,在这过程中,因为地址发生变化了,所以会重新加载一些内容

再使用 mvn install 命令将文件并打包,并发布到本地仓库



修改位置成功
3.2.2. 配置镜像
由于中央仓库访问速度较慢,可以配置镜像代理中央仓库的下载请求。在<settings>下的<mirrors>中添加如下标签即可配置镜像(配置的写法都是死的):
——
<mirror>
<!-- 指定镜像ID -->
<id>nexus-aliyun</id>
<!-- 匹配中央仓库。-->
<mirrorOf>central</mirrorOf>
<!-- 指定镜像名称 -->
<name>Nexus aliyun</name>
<!-- 指定镜像路径 -->
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
3.2.3. 配置JDK版本
创建maven项目的时候,默认使用的JDK是1.5版本,验证语法、编译、运行时都会按照JDK1.5操作,这样就有很多语法无法使用。我的电脑安装的JDK是JDK1.8,可以配置maven按照JDK1.8创建项目。
如果要配置其他版本的jdk,那么修改这个代码里的数字即可,例如,jdk11,将1.8替换成11即可
在<settings>下的<profiles>中添加如下标签即可配置JDK版本:
<profile>
<id>jdk1.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>
4. ✨总结

希望本文能够帮助到大家😊
6988





