一、Maven学习目标:
1、体验开元的优秀的框架带给的便利
2、对与自定义MVC框架的知识验证
3、开发模式的模式转变
二、Maven定义:
1、定义:Maven是专门用于构建和管理java相关项目的工具。
讲概念可能有点抽象,接下来用具体实例来帮助大家理解,在做网上书城项目的时候,我们需要导入很多jar包,其中缺点有以下几点:
1、jar包需要自己一个个去找,很麻烦
2、jar包之间是有冲突的,jar包有冲突就会导致报错
所以这时候就产生了Maven工程。
三、Maven使用(工作)原理:
我会用一张图来跟大家讲解Maven的工作原理:
原理我将用四步跟大家说明:(其下中红色字体为要理解名词)
1、如果项目要使用jar包,首先就会前往maven本地仓库(通过pom:项目对象模型、project object model的坐标找到jar包)寻找目标jar包,并会自动导入到项目并使用
2、如果本地仓库没有目标jar包时,那么就会到阿里私服仓库找到目标jar包,找到了,自动下载到本地仓库之后导入项目使用
3、如果阿里云仓库(服务器)没有目标jar包时,将会到国外maven中央仓库去下载,最后下载到本地仓库
注意:如果到国外mave中央仓库下载之后,如果出现报错,那就是代码问题
四、该怎么使用Maven
步骤:
1、解压文件夹
将压缩文件夹放到一个磁盘中进行解压(注意:文件夹的名字要为英文,其次要主要把--bin文件夹不要,只要最里面的maven文件夹)
解压之后,不要中间两个带--bin的文件夹,只要最后一个文件夹。(方法:将最后一个文件夹复制,在磁盘中再新建一个文件夹,将最后一个文件夹粘贴进去,将原压缩包放进去就可以了)
2、配置环境变量:
第一步:打开电脑属性,点击高级系统设置,点击环境变量,
第二步:点击编辑,先配置好MAVEN_HOME,变量值为之前解压文件夹到新建文件夹的路径,
第三步:之后在系统变量中找到path变量,进行编辑,之后新建,写上%MAVEN_HOME%\bin
第四步:进行验证,配置完之后就到cmd中打上mvn -version,进行验证,看看有没有配置好(图示为配置成功)
3 、配置本地仓库和私有仓库(私有仓库这里指阿里云仓库)、
1、配置本地仓库:打开新解压的文件夹,之后一直点下去,点到conf目录下点击settings.xml进行更改,点进去之后,按ctrl+F进行查询local,找到local改成图示所示:
2、配置阿里云仓库(镜像仓库):在settings.xml搜索mirror进行更改:将上述mirror改为下面的mirror
这样就将本地仓库与阿里云仓库配置好了。
五:解决了什么问题:
使用maven解决了不用手动导入jar包的问题。
六、实际操作:运行maven项目
步骤:
1、进入到eclipce中配置maven,点击windows--->preferences,之后搜索maven,点击maven中的installations,点击add找到自己的maven文件夹,之后添加该文件夹。
2、同一个面板下,点击User Settings,之后增加maven文件夹下的conf文件下的settings(本地仓库)
3、新建完项目之后,这时就会报错(很正常),首先把src下的main中的webapp下的index文件删除,我当时已经删除了。
4、然后就是点击自己新建的项目,右键,点击Properties,找到Project Facets,找到java,将版本从1.5改为1.8在之后运用并且关闭,之后再重新进行以上操作,找到Dymamic web module,将版本从2.3改为3.1,注意:把Dymamic web module的勾先取消,之后运行并且关闭,然后再进入到这个界面把勾选上之后下面会出现一行英文语句,点进去将webcontent改为webapp。
5、改变web.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>
6、改变pom.xml中的内容:要将版本从3.8.0改为4.0.0:
到浏览器搜索www.mvnrepository.com网址,进入之后在搜索框中搜索servlet,点击Java Servlet API》》4.0.0
之后点击maven复制maven中的代码到pom.xml
粘贴上去之后就会下载对应的文件,需要等几分钟。
7、完成以上操作之后,接下来在/src/main/java目录中新建一个包之后再创建一个类:
之后用tomcat运行之后就会出现结果,出现打印语句就表示用maven运行项目成功
8、注意:
1、联系maven项目时必须联网,并且网络质量要好。
2、MAVEN项目默认是没有依赖的
9、导入完整依赖:(将以下代码写到pop.xml文件中,等待下载完毕)
<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>