前言:在之前与大家分享了使用MVC框架写的网上书城项目,在其中最重要的是MVC框架的制作(xml、反射、自定义标签、通用分页、自定义mvc、easyui)。今天将于大家分享全新的东西,叫做maven整合ssh框架,主要是介绍Maven。
一、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>
总结:Maven简单点讲是管理jar包的,比起之前手动导入jar,maven更加简便,在学习maven过程中,最重要的是理解maven原理,原理很重要,将原理理解透彻后,自然而然的maven就会学好了。
|