Maven 介绍
Maven 是专门用于构建和管理Java相关项目的工具。
Maven是意第绪语,依地语(犹太人使用的国际语),表示专家的意思。
所以用Maven管理Java 项目,你就是专家了 -_-!
使用Maven管理的Java 项目都有着相同的项目结构
有一个pom.xml 用于维护当前项目都用了哪些jar包
所有的java代码都放在 src/main/java 下面
所有的测试代码都放在src/test/java 下面
比如说有3个Java 项目,这些项目都不是maven风格。那么这3个项目,就会各自维护一套jar包。 而其中有些jar包是相同的。
而maven风格的项目,首先把所有的jar包都放在"仓库“ 里,然后哪个项目需要用到这个jar包,只需要给出jar包的名称和版本号就行了。 这样jar包就实现了共享
如图所示,在pom.xml里,表示用到了mysql 的jar包,版本号是5.1.30。
那么仓库在哪里? 怎么建设呢? 在后续教程会讲到: 仓库
Maven 下载与配置
下载区(点击进入)可以下载 apache-maven-3.5.0-bin.zip, 版本是3.5.0,当前是(2017.7.21)最新版本
官方最新版下载地址:http://maven.apache.org/download.cgi
右键我的电脑-属性-高级系统设置-环境变量-系统变量-Path
使用win+r, 然后输入cmd 打开命令行,输入如下命令
mvn -v
倘若出现如图所示的截图,即表示配置成功了
Maven 仓库
所谓的仓库就是用于存放项目需要的jar包的。
maven采用一个仓库,多个项目的方式,让多个项目共享一个仓库里的相同jar包。
打开
D:\software\apache-maven-3.5.0\conf\settings.xml
可以看到,在52行指定了仓库的位置是${user.home}/.m2/repository。
对应我的机器就是
C:\Users\X7TI.m2\repository
。。。略
maven 会默认从maven官方提供的服务器下载jar包。
而官方服务器在国外,因为大家都知道的原因,网速很慢,而且容易卡断。 为了便于快速下载相关jar包,可以使用国内maven 阿里云的下载地址:使用阿里云下载路径
修改在mirrors下新加一个阿里云的镜像地址:
也可以直接复制粘贴即可,修改位置是160-165行
步骤 5 : 修改仓库位置
仓库默认位置 是 C:\Users\X7TI.m2\repository,放在C盘有一点不好,重装系统就都没有了。所以通常我会把仓库的位置修改为:
d:/maven/repository
配置文件的第55行,复制粘贴即可。
在下载区(点击进入)有我目前使用的maven仓库,虽不能说齐全,但是相当一部分常用的已经有了。 可以直接下载并解压在
这样就不需要自己下载了。
Maven 创建Maven项目
Maven作为一种工具,可以创建标准化的Maven风格Java项目。 但是在实际工作中,很少有机会直接通过Maven 命令行来做到这一点。 通常都是在Eclipse或者IDEA中,通过集成Maven的方式来创建Java 项目。
本知识点会演示这种做法,目的是为了方便理解在IDE中对Maven的运用
按下win+r,然后输入cmd,接着输入
cd e:\project
首先确保e:\project目录下没有j2se文件夹,否则会报错
然后执行命令:
archetype:generate 表示创建个项目
-DgroupId 项目包名: com.how2java
-DartifactId 项目名称: j2se
-DarchetypeArtifactId 项目类型: maven-archetype-quickstart
-DinteractiveMode:false 表示前面参数都给了,就不用一个一个地输入了
运行成功会看到绿色的BUILD SUCCESS
如图所示,会创建一个标准结构的maven 项目,不仅如此还送了一个App.java。里面输出了一个Hello World!
然后运行package命令
mvn package
注: 运行这个命令之前要先把当前路径切换到 j2se来
cd j2se
最后会看到一个绿色的BUILD SUCCESS
package做了很多事情,编译,测试,打包,最后生成了一个j2se-1.0-SNAPSHOT.jar包,里面放了APP这个类
Maven Eclipse 设置
Eclipse EE版本是已经集成好MAVEN的了,无需额外手动集成。
没有的同学可以在这里下载:下载 Eclipse
菜单->Window->Preferences->Maven->Installations-> 指定 d:\software\apache-maven-3.5.0
注: 把原来的那个低版本maven删除掉,如果有的话
菜单->Window->Preferences->Maven->User Settings->
Global Settings 和 User Settings都使用:
点击一下Reindex,确保 local Repository为:
Maven Eclipse Maven 项目
按照前面的学习流程,已经存在一个j2se目录,为避免干扰因素,先把这个目录删除掉
菜单->File->New->Other->Maven->Maven Project
这里选择默认的maven-archetype-quickstart, 和命令行创建maven项目中的项目类型一致的
Group Id: 填写包名
Artifact Id: 填写j2se
然后点击Finish
Maven 添加包
当一个Maven项目需要用到第三方jar的时候,就需要添加对应的jar包。
本例演示如何添加一个jdbc的jar包
修改App.class,故意写一段需要依赖jar包才可以成功执行的代码: 初始化mysql驱动
双击pom.xml,出现pom专有的编辑页面。
点击OverView右边的Dependencies可以看到里面有一个默认存在的junit
然后点击Add,弹出选择窗口
在中间 Enter GroupId, artifactId or sha1 prefix or pattern(*)… 这个地方输入mysql,下面就会出来被搜索到的mysql-connector-java
选中它,并点击ok
注: Scope要选择compile,表示编译期间要用到。
注: 如果输入了mysql下面没有自动显示搜索结果怎么办?点击 重建本地仓库
点击保存,一定要记得保存,保存才能使得pom.xml中的jar包依赖起作用,接着再运行APP
倘若在给maven项目添加jar中无法搜索到mysql jar包,那么可以按照如下行为操作一遍
菜单->Window->Show View->Other->Maven->Maven Repositories->Local Repository->Rebuild Index
Maven 创建Web项目
与创建Maven项目类似的,还可以创建web 项目
同样的,这种事情,几乎不会用命令行来做,都是用IDE来做的,比如Eclipse Web 项目
所以本知识点也就演示一下,实际工作一般不这么干
首先切换目录
切换盘符
执行命令(确保e:\project下没有j2ee目录)
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=com.how2java -DartifactId=j2ee -DinteractiveMode=false
这个命令和创建maven java项目中的命令一样,不过类型是从
maven-archetype-quickstart 改成了 maven-archetype-webapp
项目名称从 j2se改成了j2ee而已
与maven创建的java项目结构类似,不过没有java目录,需要自己手动创建。 所以命令行方式的maven web项目很少用到
Maven Eclipse Web 项目
删除创建Web项目步骤创建的j2ee目录
默认选中的是maven-archetype-quickstart, 请修改为: maven-archetype-webapp
此时能得到的maven web 项目,不过有两个问题
没有java源代码目录
index.jsp报错
在上一步的截图中可以发现,没有地方存放java源文件,这个时候就需要按照如下步骤做:
右键项目->属性->Java Build Path->Libraries->Edit->Workspace default
JRE(jdk8)->Finish
如图所示,java源文件目录创建好了
这个时候,还存在index.jsp会 报错的问题。 这个问题的解决办法是添加servlet.jar包。
做法参考:给maven项目添加jar
maven web-app 项目就像动态web项目那样,是支持通过eclipse 内置tomcat启动的
右键点击项目j2ee,点击Run As -> Run on Server ,成功之后就会看到如图所示的Hello World!
如果对于Eclipse内置Tomcat配置方式不熟悉,请参考教程:通过Eclipse启动Tomcat-Run On Server
Maven 创建 SSM 项目
本知识点在SSM 的PageHelper的基础上进行,所以要先到SSM 的PageHelper去下载可运行的项目,并解压。
注: 不要下载到当前知识点的可运行项目了哦,当前的是已经完成了目前的步骤流程后完成的项目
File->New->Other->Maven->Maven Project
默认即可
选择 maven-archetype-webapp
设置GroupId和Artifact Id,分别是com.how2java和ssm。
后续配置也是用的这个,所以照着做,别自作聪明改其他的,不然后面走不通
此时项目就创建好了,不过还会报错,接着做后续的一系列操作
接着复制粘贴pom.xml为下面的代码。 粘贴之后,jsp本来的报错就消失了,不过出来一个新的问题,要求通过Maven更新项目。
右键项目->Maven->Update Project,会弹出一个对话框,点击Ok,这个问题就消失了。
首先从在基于前面的知识点里下载的项目里解压出来,然后按照如下顺序复制粘贴。 不要一股脑全粘贴进去,会出现无法解决的错误哦
首先覆盖web.xml
把下载下来的xxx/ssm/WebContent/WEB-INF/web.xml
复制到当前的 ssm/src/main/webapp/web.xml这里
接着复制jsp目录。
千万不要复制lib目录
把三个配置文件复制到 ssm/src/main/resources下面
把java源代码复制到src/main/java下
按照maven ssm项目风格来说,这个文件本应该放在Resource目录的mapper文件夹下,但是这么做还要修改配置信息,为了避免问题复杂化,而且考虑到即使放在当前位置也是可以正常工作的,所以就暂时不修改它的位置了。
右键点击项目,点击Run As -> Run on Server 启动Tomcat
访问如下测试地址:
http://localhost:8080/ssm/listCategory
步骤 18 : 可运行项目
在下载区(点击进入)有本知识点对应的可运行项目下载 ,实在自己搞不出来,就下载解压出来比较一下。
注:不要和基于前面的知识点里的下载搞混了哦