Maven安装和操作

一. Maven简介

Maven是一个项目管理工具,使用Maven可以来管理企业级的Java项目开发及依赖的管理。
使用Maven开发,可以简化项目配置,统一项目结构。总之,Maven可以让开发者的工作变得更简单
而所谓的依赖管理,其实就是对项目中所有依赖的jar包进行规范化管理。

二.Maven下载、安装、配置

2.1. 下载,安装maven

-Maven官方下载地址: http://maven.apache.org/download.cgi
若要下载旧版本Maven,可以访问:https://archive.apache.org/dist/maven/maven-3/

2.2. 配置maven的本地仓库

找到[maven的安装目录]/conf/settings.xml, 在这个settings文件的55行, 添加如下内容:
在这里插入图片描述

2.3. 配置maven的远程仓库

如果不配置远程仓库,默认连接中央仓库下载所需要的jar包和插件,保存到本地仓库中!
配置远程仓库:找到[maven的安装目录]/conf/settings.xml 文件, 在settings文件的标签内部添加一个标签

	配置连接阿里云的远程仓库:

在这里插入图片描述

2.4. 配置JDK版本

配置方法是: 在settings文件的标签内部添加如下配置:
在这里插入图片描述

2.5. 将maven整合到eclipse中

如果在将maven和eclipse整合之后, 再修改settings.xml文件, 如果想让修改的配置生效, 可以重启eclipse!

2.6.本地仓库、远程仓库、中仓仓库之间的关系

在这里插入图片描述

三.将Maven配置到Eclipse中

将Maven工具配置到Eclipse中,就可以通过Eclipse和自己安装的Maven创建Maven项目了。

3.1.window右键–> Preferences:

在这里插入图片描述

3.2点击Maven选项,在右侧选项中勾选 “Download Artifact Sources”:

在这里插入图片描述

3.3点击add将自己安装的Maven添加进来:

在这里插入图片描述

3.4.添加自己安装的Maven:

在这里插入图片描述
一定要注意:自己安装的Maven不要放在桌面上(容易丢失,并且路径中往往有空格),maven的安装路径中也不要包含中文和空格!!

3.5.将默认的maven切换为自己配置的maven:

在这里插入图片描述

3.6.设置maven的settings文件的位置:

在这里插入图片描述

3.7.测试是否配置成功:window—> show view —> other中搜索"maven",点击下面的选框中的选项

在这里插入图片描述
在弹出的窗口中,查看自己配置的本地仓库和远程仓库镜像:
在这里插入图片描述

四.Maven的项目构建

4.1通过Maven构建Java项目分为两种方式:

(1)使用简单方式创建:创建Maven的简单Java工程以及创建Maven的简单Web工程

(2)使用模板方式创建:创建使用模板的Java工程以及创建使用模板的Web工程

在利用Maven构建项目时分两种,第一种是:创建简单工程(Create a simple
project),即在创建时勾选前面的框。

在这里插入图片描述
(不勾选前面的框,即创建使用骨架(其实就是模版)创建Maven工程)

另,在创建简单工程时,还分为创建Java工程和JavaWeb工程。下面分别进行演示。

4.2.创建简单工程—Java工程

4.2.1、空白处右键New —> Maven Project:

在这里插入图片描述

4.2.2、在弹出的窗口中,勾选前面的框,创建一个简单工程(即不使用骨架),进入下一步。

在这里插入图片描述

4.2.3、在弹出的窗口中,填写内容(Package选择jar,即创建java工程),点击完成即可。

在这里插入图片描述

在上述内容中,必填的内容有四项:

(1)Group Id – 组的名称,通常填写公司名称(比如com.tedu)或者组织名称(org.apache…)

(2)Artifact Id – 项目名称或者模块名称

(3)Version – 项目的版本,创建的项目默认是0.0.1-SNAPSHOT快照,也叫非正式版,正式版是RELEASE)

(4)Package – 项目的类型:jar表示创建的是Java工程,war表示创建的是web工程,pom表示创建的是父工程(当然相对的还有子工程)或者聚合工程,pom目前我们不讨论。

填写完毕后,点击完成即可完成创建简单Java工程

4.2.4、切换工程视图为包视图:window --> show view,在弹出的窗口中搜索:

在这里插入图片描述

4.2.5、创建完成后pom.xml文件会报错,说找不到web.xml文件,例如:

在这里插入图片描述
解决方法:在[Package Explorer]视图窗口中,在Web项目上右键 ==》选择:JavaEE Tools ==》选择:Generate Deployment…,webapp目录下就会生成WEB-INF目录和web.xml文件

4.2.6、Maven的目录结构

使用Maven创建的工程我们称它为Maven工程,Maven工程具有一定的目录规范,对目录结构有严格的要求,一个Maven工程要具有如下目录结构:

在这里插入图片描述
下面以Maven的Web项目为例,介绍Maven项目中的目录结构:
在这里插入图片描述

4.2.7、导入已有的Maven项目

方式一: 通过import导入(只要是eclipse创建的项目, 任何项目都可以这样导入)
1)点击eclipse左上角的"File" --> “Import…”, 在弹出的窗口中找 “General” --> “Existing Project into Workspace”
2)接着会切换到下一个窗口, 可以看到一个 "Select root directory"选项(选择根目录), 这行的后面有 “Browse…” 选项, 点击 “Browse…” 可以找到你要导入的项目, 点击你要导入的项目, 点击下方的 “选择文件夹”
3)接着在窗口中间的位置 找到 “Copy Pojects into workspace” 选项并选中该选项, 选中该选项意味着: 导入的项目会复制到工作空间中一份(这样的好处是, 即使导入位置的项目删除了也不影响, 因为已经把整个项目复制到工作空间中了), 最后点击 “Finish” 完成即可!
在这里插入图片描述
在这里插入图片描述
方式二: 创建新的项目, 将原项目中的代码复制到新项目中
1)创建一个同类型的新的项目
如果要导入的项目是Maven的Web项目,也就需要你创建一个Maven的Web项目
这里新项目的名字可以 和原项目保持一致, 也可以不一致
2)将原项目中的src目录复制到新项目中, 将新项目中的src目录覆盖即可
3)如果是maven项目, 那么其中还有pom.xml文件, 将原项目中的 pom.xml 文件打开, 将其中需要的配置复制, 粘贴到新项目的pom文件中的对应位置即可!

可能出现的问题:
1)导入项目后如果是 xxx.xml 文件报错, 这里的错误可以忽略, 是eclipse误报的!
2)如果在导入项目后,有叹号(!),都是因为maven没有将所有的环境/依赖下载下来。
可以通过如下三个步骤去解决:
a)打开项目,找到其中的pom.xml文件,在文件中敲一个空白行并保存,让maven重新扫描pom文件,并根据其中的配置下载所需要的依赖;
b)在报错的maven项目上右键–> Maven–> Update Project…,在弹出的窗口中勾选下方的 []Force Update…
即勾选强制更新,如果还没有解决,再看第3步!
c)更新本地仓库

五.Maven的依赖管理

依赖管理即jar包的管理,那么通过Maven创建的工程是如何管理jar包的?

5.1、在Maven项目中如何引入jar包?

在Maven创建的项目中,如果需要引用jar包,只需要在项目的pom.xml文件中添加jar包的坐标(GroupID + ArtifactID + Version)即可将jar包引进项目中,之后就可以在项目中使用所引入的jar包了。

在pom.xml文件中,添加mysql驱动包的坐标如下:
在这里插入图片描述

5.2、项目中引入的jar包存放在哪里?

那么问题来了,在pom文件中添加的servlet的jar包坐标,添加的仅仅是一个jar包对应的坐标,而这个jar包到底存放在哪里呢?

了解Maven管理jar包的规则之后,我们可以找到jar包的存放位置是在本地仓库(仓库默认是在:C:\Users{当前用户}.m2\repository)的 /javax/servlet/servlet-api/2.5/目录下

5.3.添加依赖:方式一

使用maven插件的索引功能快速添加jar包

这种方式需要本地仓库中已经包含了该jar包,否则搜索不到!!!

5.3.1、如果本地仓库中有我们需要的jar包,可以在项目中的pom.xml文件中空白处右键–> Maven --> Add Dependency在弹出的窗口中添加所需要的依赖(jar包),如图:

在这里插入图片描述

5.3.2、添加依赖示例:添加spring的jar包的坐标到项目中

1) 在项目中的pom.xml文件中右键 -> Maven -> Add Dependency,在弹出的窗口中输入
“spring”: 选中要添加的jar包(坐标会自动填写),点击OK即可完成添加

在这里插入图片描述

2)如果搜索不到jar包(保证本地仓库中已经下载了该jar包),可以尝试重建索引。


在这里插入图片描述
“Maven Repositories” 视图窗口中可以看到如下内容:
在这里插入图片描述

在"Local Repositories"上右键选择 “Rebuild Index” 即可重建索引。

完成后,再尝试搜索jar包进行添加。

5.4、添加依赖:方式二

5.4.1、直接在pom.xml文件中的标签内部添加。例如:在pom.xml文件中添加如下配置,就可以将junit单元测试的jar包引入到项目中来了。

添加依赖:
在这里插入图片描述

5.4.2、手动添加依赖需要指定所依赖jar包的坐标,但是在大部分情况下,我们是不知道jar包的坐标的。可以通过访问如下网址,在互联网上搜索查询:

http://mvnrepository.com
http://maven.ityuan.com/

六.Maven的依赖范围

下面添加了一个 jsp-api 的依赖,maven就会去下载 jsp-api 的jar包及它依赖的一些jar包。
在这里插入图片描述

6.1、什么是依赖范围:就是指定你这个jar包在哪个阶段时才有效。

compile - 编译依赖范围。默认的范围,可以不填,表示在所有过程中都有效,如编译期、测试过程中、运行期间等。
provided - 已提供依赖范围。这个范围表示只提供编译和测试阶段有效,运行期间不需要,像tomcat等容器本身已经提供的 servlet-api、jsp-api 等依赖。
runtime - 运行时依赖范围。这个范围表示只有在运行和测试期间才有效,编译期间不需要,像连接数据库的jdbc驱动程序等。
test - 测试依赖范围。这个范围只有测试阶段有效,编译和运行不需要,像单元测试提供的junit包。
system - 系统依赖范围。这个范围表示不依赖本地仓库,jar在其他的目录,需要通过systemPath指定路径,这个不建议使用。
import - 引用依赖范围。Maven2.0.9之后新增的范围,只能用在中,并且导入的type为pom类型的父工程配置,一般用来解决多继承问题。

6.2、什么是依赖传递:

依赖的传递前面讲过通过继承和聚合的方式可以达到,通过继承的方式可以轻松的从父项目继承过来,通过聚合的方式也可以间接的传递过来。

继承:A继承B,A就可以继承B的dependencies依赖。

聚合:A依赖C,C依赖D,那么A就要依赖D自然也就获取了D的依赖。

6.3、什么是依赖排除:

在依赖传递过程中,如 A 依赖 B、S2.0,B 依赖C、S1.0,这样A就有了S1.0和S2.0两个依赖,这样某些情况下会造成冲突需要手动把B间接传递过来的依赖排除掉,就是不依赖B带过来的S1.0的包。

在这里插入图片描述
或者直接设置 排除所有间接依赖:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值