04|第四课:Maven依赖问题

一、历史回顾

(一)、关于jar管理和依赖的回顾

9438859-0f142ced517099fb.jpg
知识图

(二)、私服(nexus 通过这个软件来搭建)

假如有一个公司,每个开发者本地仓库,太浪费了。在公司范围内,只搭建一个仓库,将Jar包都放入私服里面去。以后例如张三去寻找一个Jar,第一步先去本地库找,如果存在就直接使用,否则就去私服去下载,如果私服还是没有,再去中央仓库去下载,多了这么一个步骤。这样做有个好处,比如commons-logging.jar。张三下载到私服后,以后其他人再用,就不用中央仓库去下载了。

9438859-99321b454791b7eb.jpg
在原有的层次上多了私服

二、Maven依赖

(一)、依赖

A jar ---> B jar,通过<dependency>来实现依赖,如下图所示:

9438859-bdec3e536990a7f8.jpg
依赖代码实现

(二)、Maven依赖的范围(依赖的有效性)

依赖的范围标签<scope>,依赖的范围分别是:compile(默认)、test 、provided。如下图所示:

9438859-d9931c2805b3df61.jpg
依赖的范围

Maven在编译(主程序)、测试、运行项目时,各自使用一套classpath。

1、compile:项目在编译、测试、部署的时候,都可以看到这个依赖。

2、test:项目只有在测试的时候,可以拿到jar包。因为编译和运行的时候,根本不需要测试的jar包的。

3、provided:项目只有在开发和测试的时候使用,在运行的时候就不使用了。经典的例子:servlet-api.jar就是编译和测试使用,在运行的时候是在Tomcat运行,Tomcat容器自带了servlet-api.jar。所以运行的时候,就不需要引入了。

9438859-d1fbb9cd1001621c.jpg
依赖的范围图解

三、Eclipse中配置Maven及搭建运行第一个Maven项目

(一)、配置Maven(不使用Eclipse自带的)

1、选择Windows ---> Perferences,搜索“Maven”,在选择“Installations”--->“Add”。

9438859-0b364b2a1443d66c.jpg
操作1

2、选择本地的Maven的安装目录,点击“Finish”。

9438859-4e93c9cb3cf677df.jpg
操作2

3、在选择自己的Maven,如下图所示:

9438859-e34dfdcf9e5d41d7.jpg
操作3

4、点击“User Settings”,在右边的信息中选择本地Maven的“settings.xml”的文件中设置的本地仓库。

9438859-9e77fc4096c6e5e3.jpg
操作4

5、最后点击“Apply” ---> “OK”。

(二)、Eclipse中构建Maven项目

1、new ---> Maven Project,在弹出的对话框中勾选“Create a simple project (skip archetype selection)”,然后点击“next”。

9438859-0288f40af4897056.jpg
操作步骤一

2、然后填写“Group Id” ---> “Artifact Id” ---> “Version”后,选择“Packaging”如果是Java项目就选jar,如果是Web就选war。直接点击“Finish”。

9438859-07942ed3455e20f4.jpg
操作步骤二

3、Maven项目创建完毕。下面简单介绍

9438859-89a5a50f8706cf2c.jpg
结构简单介绍

(三)、运行Maven的项目

1、将上一讲的代码拷贝到对应main和test中,设置“pom.xml”对测试包的依赖。

2、对着Maven项目右键--->Maven--->Update Project。

3、执行Maven ---> 对着pom.xml右键 ---> Run As ---> Maven Build...,这个时候弹出一个对话框,然后在“Goals”中,输入要执行的动作“clean”。

9438859-e16975649286b265.jpg
运行pom.xml

4、执行Maven ---> 对着pom.xml右键 ---> Run As ---> Maven Build,这个会执行上一次的执行操作。

四、Maven的生命周期

例:

具体操作:执行Maven ---> 对着pom.xml右键 ---> Run As ---> Maven Build...,这个时候弹出一个对话框,然后在“Goals”中,输入要执行的动作“package”。

package:::

resources

compile 

test

package

生命周期和构建的关系:a  b  c  d  e

如果执行了c,那么a 以及 b都要执行,那实际执行的就是a b c。


结论:如果执行了偏后的命令,那之前的命令也会执行

声明周期包含的阶段:3个阶段

clean lifecycle :清理

        pre-clean      clean      post-clean

default lifecycle:默认(常用)

site lifecycle:站点

        pre-site      site      post-site      site-deploy

猜你喜欢

转载自blog.csdn.net/weixin_33884611/article/details/87592976
今日推荐