目录
一、Maven介绍
1. Maven是什么?
2.Maven的作用?
二、Maven仓库介绍
2.1 库的分类
三、Maven安装与配置
3.1 Maven安装
3.2 Maven环境配置
3.3 仓库配置
四、Eclipse与Maven配置
五、Maven项目测试
5.1 新建Maven项目步骤及注意事项
5.2 解析Maven项目的目录结构
5.3 Maven 依赖配置
5.4 测试pom.xml是否能通过编译
5.5 项目JDK与WEB版本修改
5.6 项目测试
一、Maven介绍
1. Maven是什么?
Maven是一个用于构建和管理Java项目的开源工具。它提供了一种标准化的项目结构、构建过程和依赖管理机制,使得开发人员能够更轻松地构建、测试和部署Java应用程序。
2.Maven的作用?
传统工程我们直按把jar包放置在项目中,在真的项目开发中我们需要用到许多jar包,我们还需要把jar下载到本地然后放置在项目里,显然这样是很不方便的。而Maven工程把jar包放置在仓库中,项目中只用放置jar包的坐标(路径)。而用了 Maven 之后,需要什么包,直接在 pom.xml 中添加几行 xml 代码(添加所依赖jar包的坐标),指定包名、版本等,Maven就会自动从仓库里下载jar包。
pom.xml 解释:
Maven使用POM(项目对象模型)文件来描述项目的结构、依赖关系和构建配置。POM是一个XML文件,其中包含了项目的元数据、构建配置、依赖项和插件等信息。
二、Maven仓库介绍
Maven库是指存储和管理Java项目依赖的仓库。它是Maven构建工具的核心组成部分,用于管理项目的依赖关系和版本控制。
2.1 库的分类
Maven库分为两种类型:本地库和远程库。
-
本地库:本地库是存储在本地计算机上的Maven仓库。当你第一次构建一个项目时,Maven会自动下载所需的依赖并将其保存在本地库中。之后,当你构建其他项目时,Maven会检查本地库中是否已经存在所需的依赖,如果存在则直接使用,避免重复下载。
-
远程库:远程库是存储在远程服务器上的Maven仓库。远程库又分为三种:
-
中央仓库:架设在Internet上,它是一个公共的、全球性的仓库,包含了大量的开源Java项目的依赖。
-
私服:一般用于公司,架设在当前局域网环境下,为当前局域网范围内的所有Maven工程服务。
-
中央仓库的镜像:架设在各个大洲,为中央仓库分担流量。减轻中央仓库的压力,同时更快响应用户请求。
-
使用Maven库的好处包括:
- 管理依赖:Maven库提供了一个集中管理项目依赖的方式,简化了项目配置和构建过程。
- 版本控制:Maven库可以确保项目使用的依赖版本一致,避免了版本冲突和兼容性问题。
- 自动下载:Maven库可以自动下载项目所需的依赖,减少了手动下载和配置的工作量。
- 缓存机制:Maven库会缓存已下载的依赖,提高了构建的速度和效率。
总之,Maven库是一个重要的工具,可以帮助开发人员更方便地管理和使用项目的依赖,提高开发效率和代码质量。
三、Maven安装与配置
3.1 Maven安装
👉 点击进入 Maven官网下载Maven安装包
下载后得到的压缩包:
3.2 Maven环境配置
1. 解压Maven压缩包 --> 赋值有bin目录的路径
2. 进入电脑设置里的高级系统设置 --> 点击环境变量
3. 新建一个系统变量 将Maven路径粘贴上去
4. 配置环境变量 path
5. 打开cmd输入 mvc -version 进行测试如图下就是配置成功了
3.3 仓库配置
1. 配置本地仓库,新建一个文件作为仓库并复制其路径
2. 打开Maven文件下的conf文件夹下的settings.xm文件,找到localrepository(复制一个新的)将之前建的仓库路径放进去
3. 如果考虑到性能的话可以修改它的镜像换成阿里云镜像
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
四、Eclipse与Maven配置
1. 进入Eclipse进入Preferences --> maven --> installation --> add
确定后要选择 Apache-maven-3.5.0
2. 设置当前电脑配置Maven 点击User settings: Browse... 更换之前配置的conf下的settings.xml文件
最后就配置完成了,将来你要下载的jar包就会保存到之前创建配置好的文件夹里了(mvn_repository)
五、Maven项目测试
5.1 新建Maven项目步骤及注意事项
1. 在Eclipse里面新建一个Maven项目 Catalog选择Internal本地 --> 下面选择最后一个webapp
2. Group Id: 设置自己的用户id; Artifact Id:编写项目名称
3. 刚新建的Maven项目要下载各种工具,请耐心等待它下载完...
注意: 期间不要退出或关闭网络可能会下载失败,需要把本地仓库清空,重新配置下载。
5.2 解析Maven项目的目录结构
新建的Maven文件的目录结构不全需要点击项目 --> Build Path --> Source 取消Allow的选项就可以展示项目完整目录结构了
5.3 Maven 依赖配置
1. 去中央库里找到 JSP API 资源
2. 点击进入2.0版本,复制 Maven JSP 依赖内容
3. 将所需要的依赖配置到 pom.xml 文件中,在其中你可修改依赖的版本保存就可以直接下载,下载好后就可以再本地仓库查看jar包了。是不是很方便😂
4. 修改web.xml配置,项目里面是2.多版本的我用的是3.1因此需要修改它的头部版本信息
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
5.4 测试pom.xml是否能通过编译
在pom.xml界面运行Maven test
如果出现这个就是配置成功了,如果不是你就将本地仓库的文件和配置全删了重配,要么你知道是配置的哪个才出了问题,删了出问题的那个依赖就行了.
5.5 项目JDK与WEB版本修改
1. 右击项目 --> Preferences -->Project Facets 先把web和java选项取消再修改版本,修改后点击Apply在选择Dynamic Web 和 Java 。
2. 修改原来web项目的路径点击 Further configuration available 并勾选Generate点击ok后在Apply应用后保存并关闭
3. 完成以上步骤之后可能还是报错就要在pom.xml添加一个插件
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
4. 最后右击项目 Maven --> Update Project 修改项目就ok啦!
5.6 项目测试
这里编写了一个简单的sevlet跳转到index.jsp页面进行测试
package com.ycxw.web;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@WebServlet("/HelloMavenServlet")
public class HelloMavenServlet extends HttpServlet {private static final long serialVersionUID = 1L;protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("hello,maven");request.getRequestDispatcher("/index.jsp").forward(request, response);}}