目录
[1. 🧩Maven插件](#1. 🧩Maven插件)
[2. 🏗️构建Maven工程](#2. 🏗️构建Maven工程)
[3. 📄 pom文件配置](#3. 📄 pom文件配置)
[3.1. ⚙️ 中定义一些配置信息](#3.1. ⚙️ 中定义一些配置信息)
[3.2. 📦 中定义依赖的jar包坐标](#3.2. 📦 中定义依赖的jar包坐标)
[3.3. 🔌 中定义第三方插件](#3.3. 🔌 中定义第三方插件)
[4. ✍️编写代码](#4. ✍️编写代码)
[5. 🔗依赖范围](#5. 🔗依赖范围)
[6. 📝总结](#6. 📝总结)
💡【开发哲学共勉】
pom 文件作为 Maven 项目的核心,以简洁的标签和精准的配置,掌控着依赖的全局,如同船长依据航海图引领巨轮在复杂的海洋中航行,确保项目在正确的航道上前行。
🎉 前言
在 Java 生态中,Maven 是工程化开发的核心基石。它以标准化流程解决依赖管理与构建繁琐问题,让项目从代码到交付的链路清晰可控
本文聚焦 Maven 工程开发核心环节:从 Maven 插件配置、工程构建步骤,到 pom 文件关键配置逻辑,再到代码编写要点与依赖范围规则。掌握这套体系,不仅能驾驭工具,更能建立工程化思维,在团队协作与项目迭代中实现高效开发
个人主页: 艺杯羹🌿
系列专栏: Maven 🚀
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工程:
-
打开 idea,选择创建一个新工程
-
选择Maven工程,并使用maven的web工程模板
项目组:公司名
-
手动添加src/main/java目录,此时该目录还不能写Java代码
可以看到这个目录和之前讲的目录还有一些没有创建出来,那么我们就要手动创建了
要给每个文件夹功能
-
添加文件
如果main下的java文件夹里不能用写java文件
那么就右击文件夹,在最下方选择"Sources Root",就可以写java文件了
test中的文件夹一般是会自动配置为测试文件夹
|---------------------|------------------------------------------|
| Sources Root | 源码根,存放 .java
等可编译代码(如 src/main/java
) |
| Test Sources Root | 测试源码根,存放 JUnit 测试类(如 src/test/java
) |
| Resources Root | 资源根,存放配置(.properties
)、静态资源(如图片) |
| Test Resources Root | 测试资源根,存放测试配置文件(如 src/test/resources
) |
| Excluded | 排除目录,忽略构建输出(如 target
)以提升性能 |
3. 📄 pom文件配置

pom文件,简单来说他的作用:
pom.xml 是 Maven 项目的 "说明书 ",用来写清楚项目要啥依赖 、怎么打包,让大家按统一规矩干活,避免版本混乱和重复操作
pom文件最上方是项目基本信息:
解释标签含义
参数 | 定义内容 | 规则 / 说明 | 示例 |
---|---|---|---|
groupId | 项目组名 | 反向域名格式 | com.yibeigen |
artifactId | 项目名 | 小写字母 | my-project |
version | 版本号 | 三段式:重大升级。新功能.bug 修复 | 1.2.3 |
packaging | 打包方式 | 如 jar、war 等 | jar |
3.1. ⚙️<properties> 中定义一些配置信息
没有的话,就添加进去即可,这里的第二个是java版本,根据自己的java版本来改,我这里是1.8版本的就写1.8, 如果你是jdk11,那就把1.8改成 11 就OK了
XML
<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/
- 搜索Servlet ---> 单击Java Servlet API

- 里面的版本可以自己选,我选的是3.0.1的
单击进去复制如图的代码即可
往下划一下
- 复制到pom文件的 dependencies 标签中,这里先删除最后一个
jsp也是一样的操作,也可以直接复制我写的这个代码,因为都是写死的代码(๑•̀ㅂ•́)و✧
放到pom文件中后,还要让 maven 来做加载
一般在右侧可以打开maven
XML
<!-- 依赖的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插件了

XML
<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来运行一下
XML
servlet代码
@WebServlet("/demo1")
public class MyServlet extends HttpServlet {
@Override
protected void doGet(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>,可以设置依赖的作用范围,有以下取值:
依赖范围 | 生效阶段 | 特点 / 典型例子 |
---|---|---|
compile | 编译、运行、打包 | 默认范围,项目打包会包含,如常规业务代码依赖 |
provided | 编译 | 运行时容器等已提供,无需打包,如 servlet - api |
runtime | 运行 | 编译不用,运行需要,如 JDBC 驱动包 |
test | 编译和运行测试代码 | 正常运行无需,如 JUnit |
system | 编译、运行(需手动处理) | 依赖无 Maven 坐标,本地硬盘引入,不推荐 |
所以对于Servlet和Jsp依赖,我们在pom.xml中添加依赖范围为provided即可,因为只需要在编译时生效就可以了
注意是放在<dependencies>标签里的
XML
<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. 📝总结

希望本文能够帮助到你(๑•̀ㅂ•́)و✧