Maven高级进阶:插件配置、pom 文件与依赖管理

前言
在 Java 生态中,Maven 是工程化开发的核心基石。它以标准化流程解决依赖管理与构建繁琐问题,让项目从代码到交付的链路清晰可控。
本文聚焦 Maven 工程开发核心环节:从 Maven 插件配置、工程构建步骤,到 pom 文件关键配置逻辑,再到代码编写要点与依赖范围规则。掌握这套体系,不仅能驾驭工具,更能建立工程化思维,在团队协作与项目迭代中实现高效开发。
1.Maven插件
Maven 插件用于扩展 Maven 核心能力
setting –> 输入 maven –> 修改安装路径,配置文件路径,修改本地仓库路径


其中的第二个“配置文件路径”,要配置到Settings.xml


这就配置好Maven插件了
但是这个配置好了后,只能在当前项目中有用,在新的项目中又要重新配置了
新建新项目时,就会自动配置好maven插件的方法
file —> New Projects Setup —> Settings for New Projects…

再按照刚刚那个方法配置一遍

之后再创建项目时,就会沿用这个Maven配置(๑•̀ㅂ•́)و✧
maven工程,就是可以使用Maven来管理的工程
2.构建Maven工程
接下来我们构建一个Maven的Web工程:
1.打开 idea,选择创建一个新工程

2.选择Maven工程,并使用maven的web工程模板


3.手动添加src/main/java目录,此时该目录还不能写Java代码

可以看到这个目录和之前讲的目录还有一些没有创建出来,那么我们就要手动创建了
要给每个文件夹功能
4.添加文件

如果main下的java文件夹里不能用写java文件
那么就右击文件夹,在最下方选择“Sources Root”,就可以写java文件了
test中的文件夹一般是会自动配置为测试文件夹


3.pom文件配置
简单来说他的作用:
pom.xml 是 Maven 项目的 “说明书”,用来写清楚项目要啥依赖、怎么打包,让大家按统一规矩干活,避免版本混乱和重复操作
pom文件最上方是项目基本信息:

解释标签含义

3.1.<properties>中定义一些配置信息
没有的话,就添加进去即可,这里的第二个是java版本,根据自己的java版本来改,我这里是1.8版本的就写1.8, 如果你是jdk11,那就把1.8改成 11 就OK了
<properties><!-- 编码格式 --><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!-- 编译时使用的JAVA版本 --><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties>

3.2.<dependencies>中定义依赖的jar包坐标
因为javaweb项目,所以要用到servlet 和 jsp的jar包,因此就要这两个的坐标
由于项目是web项目,需要写Servlet和JSP,所以需要引入Servlet和JSP的依赖。查找依赖坐标的网站:https://mvnrepository.com/
1. 搜索Servlet —> 单击Java Servlet API

2. 里面的版本可以自己选,我选的是3.0.1的
单击进去复制如图的代码即可

往下划一下

3. 复制到pom文件的 dependencies 标签中,这里先删除最后一个

jsp也是一样的操作,也可以直接复制我写的这个代码,因为都是写死的代码
放到pom文件中后,还要让 maven 来做加载
一般在右侧可以打开maven


<!-- 依赖的jar包坐标 --><dependencies><!-- servlet依赖 --><dependency><!-- 项目组名 --><groupId>javax.servlet</groupId><!-- 项目名 --><artifactId>javax.servlet-api</artifactId><version>3.0.1</version></dependency><!-- jsp依赖 --><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2</version><scope>provided</scope></dependency></dependencies>
为什么之前的web项目中没有引入jsp和servlet的jar包? 因为之前项目中使用的是tomcat中的jsp和servlet中的jar包,在项目中没有引入 我们会用Tomcat插件,而不是完整的Tomcat
3.3. <plugins>中定义第三方插件
放在<build>下
web项目依赖tomcat运行,所以添加 tomcat7插件 —> 在 maven 中刷新,就会自动下载Tomcat插件了


<plugins><!-- tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><port>8080</port><path>/</path><uriEncoding>UTF-8</uriEncoding><server>tomcat7</server></configuration></plugin></plugins>
4.编写代码
接下来编写Servlet和Jsp代码,来通过idea来运行一下
servlet代码
@WebServlet("/demo1")publicclassMyServletextendsHttpServlet{@OverrideprotectedvoiddoGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// 跳转页面 req.getRequestDispatcher("hello.jsp").forward(req,resp); }}
jsp代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>Title</title></head><body><h1>大家好,感谢支持艺杯羹!</h1></body></html>


这样就运行成功了
但是这要每次都输入命令,现在提供一个直接可以运行的配置
单击右上角的当前文件 —> Edit Configurations……

单击左上角的加号 —> Maven

填写项目名和执行的命令:tomcat7:run

点击OK后配置完成,点击Idea的运行符号即可使用maven中的tomcat7插件运行项目

5.依赖范围
上面的运行后,在浏览器访问servlet时,发现报500异常,这是为什么呢?

这是由于项目中引入了 Servlet 和 Jsp 的jar包
而在项目运行时,Tomcat要使用它自带的Servlet和Jsp的jar包,这样就造成了jar包冲突
但如果项目不引入 Servlet 和 Jsp 的 jar 包,则根本无法通过编译。
此时可以设置依赖的作用范围解决该问题,设置Servlet和Jsp的jar包只在编译期起作用,运行时不起作用,这样不仅可以通过编译,还能在运行时避免jar包冲突。
通过在<dependency>中添加<scope>,可以设置依赖的作用范围,有以下取值:

所以对于Servlet和Jsp依赖,我们在pom.xml中添加依赖范围为provided即可,因为只需要在编译时生效就可以了
注意是放在<dependencies>标签里的
<dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2</version><!-- 作用范围 --><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.0.1</version><!-- 作用范围 --><scope>provided</scope></dependency>

配置完后就可以访问了
6.总结

构建高质量的技术交流社群,欢迎从事编程开发、技术招聘HR进群,也欢迎大家分享自己公司的内推信息,相互帮助,一起进步!
文明发言,以
交流技术、职位内推、行业探讨为主
广告人士勿入,切勿轻信私聊,防止被骗

点下方的“❤”支持我们,非常感谢!
夜雨聆风
