Maven的坐标、仓库、依赖、范围

  上次我们讲过了Maven在运行过程中可能产生的联网问题,即它在构建过程中的各个阶段是需要具体的插件去执行的,这些插件并不存在Maven的核心程序中,它会先去本地仓库中寻找,若没有找到就会联网去中央仓库寻找,若为联网,则项目构建失败。下边我们来讲一讲Maven的坐标、仓库、依赖、范围。

  1.坐标:简称jav(groupId artifactId version)

  就是本项目的pom.xml中唯一一个标识本项目在Maven本地仓库的位置。形如:

    <groupId>com.atguigu.maven</groupId>    ---① 在本地仓库中的文件夹的路径
      <artifactId>Hello</artifactId>                         ----② 在本地仓库中的文件夹的路径
    <version>0.0.1-SNAPSHOT</version>        ----③ 在本地仓库中的文件夹的路径

  其中,②和③构成了项目被打成jar包之后的名称

  2.仓库

  这个概念是当Maven核心程序运行时,会从仓库中寻找自身构建所需的插件、第三方框架或工具的jar包、我们自己开发的Maven工程。

  仓库分为本地仓库和远程仓库

  本地仓库:默认user/.m2/repository。可以在Maven核心程序下的conf.settings.xml中进行修改。

  远程仓库又分为:

  私服:局域网范围内的Maven服务,常用的私服是Nexus。

  中央仓库:架设在Internet上,为全世界所有Maven工程服务。

  中央仓库的镜像:为分担中央仓库的流量,提升用户访问速度。

  3.依赖

  若当前项目对Maven仓库中的jar包产生了依赖,则必须要在当前项目的pom.xml文件中声明这个jar包的坐标。

  但是我们必须保证根据pom.xml中指定的坐标,我们可以找到这个jar,否则会报Error,且被依赖的jar包必须被install到本地仓库中过。

  Maven解析当前项目的pom.xml文件的依赖信息时,会先到本地仓库中去寻找被依赖的jar包,找不到则会报错。

  所以,对于我们自己的Maven过程,我们必须install一下,才可以将其对应的jar包放入到本地仓库中。 

  4.依赖的范围

  在pom.xml文件中,我们可以指定所依赖的jar包,并且可以指定这个jar包在当前项目中的哪类代码中起作用,即哪类代码中被引用;还可以指定当前jar包在整个项目运行前被引用的时机。

  主要是在dependency节点的scope节点内有三个值:compile/test/provided/system。

  compile表示这个被依赖的jar包可以在整个程序中被引用,即它其中的类可以import。且一直到项目部署到服务器上,这个jar包也会被放到编译后的项目的lib目录下。它的jar参与打包。

  test:表示这个被依赖的jar包只可以在test这个目录下被引用其中的类。且它的jar不参与打包。

  provided:在工程中的所有代码都可以使用,但是它的jar包只可以在项目的编译时期才可以引用,在程序部署和运行的时候都不能被引用。它的jar不参与打包。

  5.生命周期

  Maven的核心程序定义了生命周期这个抽象的概念,具体的任务是需要参见完成的。

  为了更好的实现自动化构建,Maven的生命周期的执行要求是:不论现在执行生命周期的哪个阶段,都要求从生命周期的最初阶段开始。

  三个主要生命周期:清理、生成站点、部署项目。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值