一、Maven简介
Maven是一个在Java项目中广泛使用的项目管理工具。它的主要作用是简化项目构建的过程,并提供了一种标准的项目结构和一套功能强大的构建生命周期管理。
以下是Maven的一些主要作用和优势:
- 1. 项目构建:Maven能够自动构建项目,并管理项目中的依赖关系。它使用基于POM(项目对象模型)的配置,定义了项目的构建规范和依赖关系,使得构建过程更加简单和可重复。
- 2. 依赖管理:Maven能够自动下载、管理和导入项目所需的第三方依赖。通过配置POM文件中的依赖项,Maven可以自动下载相应的依赖库,并将其添加到项目的类路径中,简化了依赖管理的过程。
- 3. 构建生命周期管理:Maven使用构建生命周期管理(Build Lifecycle)来定义和执行项目的构建过程。构建生命周期分为三个不同的阶段:clean、default和site。每个阶段都包含了一系列的插件目标(Plugin Goals),可以执行各种构建任务,例如编译、打包、测试等。开发人员可以根据项目的需求自定义构建过程。
- 4. 项目报告和文档生成:Maven具有丰富的插件生态系统,可以生成各种项目报告和文档。通过使用插件,开发人员可以生成测试报告、代码覆盖率报告、静态代码分析报告等,从而方便项目的管理和维护。
- 5. 跨平台和可移植性:Maven是基于Java的工具,可以在不同的操作系统上运行,并且能够管理各种类型的项目(不仅限于Java项目),包括Web应用程序、Java库、Android应用等。这种跨平台的特性使得开发人员可以在不同的环境中共享和重用代码。
总的来说,Maven的主要作用是简化项目构建、依赖管理和文档生成等过程。它的优势在于提供了一种标准化的项目管理方式,通过自动化和约定俗成的配置,减轻了开发人员的工作负担,并提高了项目交付的质量和效率。
二、Maven安装及配置
(1) 安装包
下载maven安装包,解压即可使用 : Maven – Download Apache Maven
提示:每个版本之间都有这差异及优点,要妥善根据自己用maven的需求去下载所需的版本
(2) 环境变量
在自己的电脑上,点击此电脑,如何右键属性,在点击高级系统设置,打开环境变量
新建一个系统变量名称为:MAVEN_HOME
变量值为:下载maven的本地路径的bin目录的上一级目录
如:D:\temp\maven\apache-maven-3.5.0-bin\apache-maven-3.5.0-bin\apache-maven-3.5.0
我的如图:
然后找到系统变量名为:Path的系统变量,然后点击编辑
在这个变量的基础上多加一串变量 为: %MAVEN_HOME%\bin
(3)验证
完成以上操作后可以进行验证,看是否成功
win+r 输入cmd 打开命令窗口
在输入这个命令 : mvn -version
如图:
可以选中以上路径右键是复制,复制后去在电脑上粘贴这个路径是否相对应,如果可以说明
已经成功的把环境变量配置好了。。。
(4)配置本地仓库
在这里需要配置本地仓库,先找到maven下载的路径下点击conf文件,打开里面的settings.xml文件进行编辑(配置),在找到名称为:localRepository(配置标签)进行配置引用文件的下载路径
如: <localRepository>D:/temp/mvn_repository</localRepository>
提示:可以根据自己的下载配置文件的习惯进行连接配置
如图所示:
之后再找到名为 <mirrors>的配置标签进行仓库的配置
配置以下标签:
<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>
以上标签需要嵌入到 <mirrors>的标签里面,如图所示:
完成以上操作就说明已经安装及配置好了Maven。。。
三、Maven的使用
这里是把Maven在eclipse中进行一个基本的使用
在此之前需要把编码及服务器在eclipse中配置好
如编码统一是UTF-8,服务器版本为8.0(Tomcat)
3.1 创建Maven项目
在eclipse存放项目的地方(基本在左侧," 窗口名称为: Project Explorer ")
右键点击New,之后点击Other...在输入查找Maven Project,点击后按两次Next
将上面的改为本地路径设置,下面选择最后一个1.0的
如图所示:
之后会有这个界面,需要我们填写一些关键的名称,这里域名是我填写的是自己的名称
可以如图填写,也可以根据自己的习惯填写
注意: 版本不能随意修改,在不了解每个版本的情况下。。。
在第一次创建项目的时候会比较慢,因为首次需要把引用文件下载到本地路径来进行引用
如图:
只需要等待一会,下载完成之后即可,如果失败就需要检测 maven下载的路径下conf文件的
settings.xml配置文件是否配置完好或者是否有错误存在。
3.2 改正项目
创建完项目之后,项目的目录结构是存在问题的;
我们选中项目后右击后再点击Bulid Path,再点击Configure Build Path
最后将左下角那个勾取消掉即可
如图:
完成以上操作后,项目目录结构就恢复正常了,之后我们了解一下每个目录文件的作用
看图了解
3.3 配置Servlet及jsp版本和Mysql引用
在没有配置Servlet之前,我们是不能创建Servlet的,如果创建将会报错
如图:
首先找到项目中的pom.xml配置文件(基本都是在项目的目录最底下)
再全部修改为一下配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.zking</groupId> <artifactId>maven</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>maven Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- 引用mysql连接jar --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.28</version> </dependency> <!-- 引用servlet --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> </dependencies> <build> <finalName>maven</finalName> <plugins> <!--第一步就是配置maven-compiler-plugin插件--> <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> </build> </project>
其中还可以根据自己所需功能或者要求进行引用多给配置文件
之后我们可以测试验证一下,配置引用的是否有问题
1.点击pom.xml文件之后右键选中Run As,在执行Maven test
如图
2.执行完成后没有显示红色报错说明配置成功
以下是配置成功的案例 如图:
之后修改我们项目中的JSP版本,没有进行修改前呢,JSP是2.3的版本,看图我们可以知道
我们只需要找到项目中web.xml文件
由图中可以看到web.xml路径在src/main/webapp/WEB-INF中可以找到web.xml
该将里面的配置标签全部修改为以下的配置标签即可
<!-- 修改web.xml由2.3至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" id="WebApp_ID"> <display-name>maven</display-name> <servlet> <servlet-name>HelloMavenServlet</servlet-name> <display-name>HelloMavenServlet</display-name> <description></description> <servlet-class>com.CloudJun.web.HelloMavenServlet</servlet-class> </servlet> <servlet> <servlet-name>Maven</servlet-name> <display-name>Maven</display-name> <description></description> <servlet-class>com.CloudJun.web.Maven</servlet-class> </servlet> <servlet> <servlet-name>MavenServlet</servlet-name> <display-name>MavenServlet</display-name> <description></description> <servlet-class>com.CloudJun.web.MavenServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloMavenServlet</servlet-name> <url-pattern>/HelloMavenServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Maven</servlet-name> <url-pattern>/Maven</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>MavenServlet</servlet-name> <url-pattern>/MavenServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
完成后我们在项目中创建一个JSP就都是3.1的版本了。。。
3.4 配置JDK及Web Mdeule版本
选中项目右键点击 Properties ,然后在左侧找到Project Facets点击
1 . 将Dynamic Web Module 的Version改为3.1
2 . 将Java 改为 1.8
如图操作
3. 之后会有一个jsp的存放路径要修改
点击左下角的蓝色字体后,修改jsp路径为:src/main/webapp
如图操作:
4. 最后进行项目的刷新
选中项目右键点击Maven之后再点击Updete Project
如图操作
最后会弹出一个窗口,点击OK即可完成
3.5 测试
到最后我们为Maven测试一下
先在src/main/webapp目录下创建一个jsp
代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> 小卡拉米 </body> </html>
之后再创建一个Servlet,代码如下:
package com.CloudJun.web; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class MavenServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //统一编码 request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); System.out.println("小卡拉米,Maven测试成功。。。。。"); request.getRequestDispatcher("/index.jsp").forward(request, response); } }
最后我们在Servlet这里执行,如果执行成功将是这个效果