⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 https://blog.csdn.net/qq_46987323 「艺杯羹」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

前言

在 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中的文件夹一般是会自动配置为测试文件夹

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.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了

<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")
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>,可以设置依赖的作用范围,有以下取值:

所以对于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.总结

文章目录
  1. 1. 前言
  2. 2. 1.Maven插件
  3. 3. 2.构建Maven工程
  4. 4. 3.pom文件配置
    1. 4.0.1. 3.1.<properties>中定义一些配置信息
    2. 4.0.2. 3.2.<dependencies>中定义依赖的jar包坐标
    3. 4.0.3. 3.3. <plugins>中定义第三方插件
  • 5. 4.编写代码
  • 6. 5.依赖范围
  • 7. 6.总结