SSH框架学习目标:
1,体验开源的优秀的框架,带给我便利
2,与自定义mvc框架的知识验证
3,开发模式的模式的转变,前后端分离
今日目标:
1,maven是什么?
2,怎么使用?
3,原理是什么?
4,解决了什么问题?
一,maven是什么
介绍:Apache Maven是个项目管理和自动构建工具,基于项目对象模型(POM)的概念。
作用:完成项目的相关操作,如:编译,构建,单元测试,安装,网站生成和基于Maven部署项目。
好处:便于统一维护jar包。
二,怎么使用
maven下载地址:http://maven.apache.org/download.cgi
如果是Windows版则选择第二行的apache-maven-3.8.3-bin.zip下载即可
此版本是官网目前退出最新的版本,本人下载的是下面的版本
下载完之后进行环境配置
1,解压 2,配置环境变量
1.1,新建一个规范的文件夹,便于以后的jar包查找(本人在F盘下新建一个文件夹)
1.2,然后将下载下来的apache-maven-x.x.x-bin.zip解压到此文件夹,然后删除zip.2.1,配置MAVEN_HOME环境变量,指向maven的安装目录
2.2,并将bin目录追加到PATH路径中,方便在命令行调用
3,验证
在命令行执行mvn –version,如果显示下图所示信息,说明maven已经安装成功
4,配置本地仓库
4.1,新建bendicangku文件夹(作为自己本地的Maven仓库,保存项目中从中央仓库下载下来的所有需要使用的jar包)
4.2,修改settings.xml文件
4.3,在这个位置配置本地仓库路径
5,设置私有仓库 (阿里云私服也就是maven的镜像仓库)
三,原理是什么
jar的查找顺序:本地仓库->私有仓库->中央仓库(正方体是本地仓库)
当配置结束后
1,通过pom文件的坐标优先读取本地仓库的jar包,如果曾经下载过,那么直接自动导入到当前项目中用
2,如果本地仓库没有,那么就会到阿里云镜像服务器中去找开发需要的jar包,找到了自动下载到本地仓库,并且会引入到项目
3,如果阿里云镜像服务器没有,那么会到国外的maven中央仓库去下载,如果有直接下到本地仓库,并且引入项目使用
4,如果国外maven中央仓库都没有找到,那么肯定是代码问题,会报错
四,配置
4.1,配置安装路径(Window Preferences 搜索(maven) Installations->add)
4.2,指定setting.xml文件
五,使用
目标效果:(启动服务输出maven实现---)
前提条件:
必须联网,而且网络质量要很好
maven项目默认是没有Tomcat依赖的(需要在maven中导入Tomcat相关依赖,或者说servlet相关的依赖)
5.1,建立maven项目
Internal优先读取本地
Group id:组织id,一般就是公司域名反写 Artifact id:项目名字
点击Finish就可以创建了,但第一次创建需要下载jar包,请耐心等待
5.2,创建成功后还需要更改以下配置
5.3,修改xml文件
<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"> <display-name>Archetype Created Web Application</display-name> </web-app>
5.4,pom.xml中导入servlet相关的依赖
在这可查看是否导入成功
方法二:
<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.lgs</groupId> <artifactId>T269L_maven</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>T269L_maven Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.plugin.version>3.7.0</maven.compiler.plugin.version> <!--添加jar包依赖--> <!--mysql--> <mysql.version>5.1.44</mysql.version> <!--5.其他--> <junit.version>4.12</junit.version> <servlet.version>4.0.0</servlet.version> <jackson.version>2.9.3</jackson.version> <jstl.version>1.2</jstl.version> <standard.version>1.1.2</standard.version> <tomcat-jsp-api.version>8.0.47</tomcat-jsp-api.version> <commons-beanutils.version>1.9.3</commons-beanutils.version> <dom4j.version>1.6.1</dom4j.version> <jaxen.version>1.1.6</jaxen.version> </properties> <dependencies> <dependency> <groupId>jaxen</groupId> <artifactId>jaxen</artifactId> <version>${jaxen.version}</version> </dependency> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>${dom4j.version}</version> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>${commons-beanutils.version}</version> </dependency> <!--mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>${servlet.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>${jstl.version}</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>${standard.version}</version> </dependency> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jsp-api</artifactId> <version>${tomcat-jsp-api.version}</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.10</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.0</version> </dependency> <dependency> <groupId>com.github.davidcarboni</groupId> <artifactId>encrypted-file-upload</artifactId> <version>2.1.0</version> </dependency> </dependencies> <build> <finalName>T269L_maven</finalName> </build> </project>
5.5,代码及实现
package com.lgs.demo; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; @WebServlet("/demo") public class DemoServlet extends HttpServlet{ public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { System.out.println("maven实现---"); } }
效果展示:
OK! 到这就结束了,希望能帮到你!!!