Maven

转载:https://www.cnblogs.com/AlanLee/category/918828.html

私服简介

  • 私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。

二、使用私服的好处

1、jar包下载速度比中央仓库快
2、有些jar包由于版权原因,maven中央仓库没有,比如oracle JDBC驱动。另外也会有一些项目中用到的比较老的开源jar包,中央仓库也没用
3、公司自己开发的jar包并不开源,不能上传到maven中央仓库,只能部署到私服上面
4、便于进行统一jar包管理
5、可在此基础上搭建自动化部署服务器:
1)Maven构建和释放项目;
2)SubVersion源代码库,管理源代码;
3)远程存储库管理器(Jfrog/ Nexus)来管理项目的二进制文件。

nexus仓库分类
  • hosted 宿主仓库:主要用于部署无法从公共仓库获取的构件(如 oracle 的 JDBC 驱动)以及自己或第三方的项目构件;
  • proxy 代理仓库:代理公共的远程仓库;
  • virtual 虚拟仓库:用于适配 Maven 1;
  • group 仓库组:Nexus 通过仓库组的概念统一管理多个仓库,这样我们在项目中直接请求仓库组即可请求到仓库组管理的多个仓库
主要介绍一下三个本地仓库:
  • Releases:用来部署管理内部的发布版本构件的宿主类型仓库,这里存放我们自己项目中发布的构建,通常是Release版本的, 比如我们自己做了一个FTP Server的项目, 生成的构件为ftpserver.war,我们就可以把这个构建发布到Nexus的Releases本地仓库。

  • Snapshots:用来部署管理内部的快照版本构件的宿主类型仓库,它的目的是让我们可以发布那些非release版本, 非稳定版本,比如我们在trunk下开发一个项目,在正式release之前你可能需要临时发布一个版本给你的同伴使用, 因为你的同伴正在依赖你的模块开发,那么这个时候我们就可以发布Snapshot版本到这个仓库, 你的同伴就可以通过简单的命令来获取和使用这个临时版本。

  • 3rd Party:无法从公共仓库获得的第三方发布版本的构件仓库,比如有些构件在中央仓库是不存在的.比如你在中央仓库找不到Oracle 的JDBC驱动, 这个时候我们就需要自己添加到3rdparty仓库。

maven的生命周期

Maven有三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,初学者容易将Maven的生命周期看成一个整体,其实不然。这三套生命周期分别是:

  • Clean Lifecycle 在进行真正的构建之前进行一些清理工作;
  • Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等;
  • Site Lifecycle 生成项目报告,站点,发布站点。

对于Maven的最重要的Default生命周期,绝大部分工作都发生在这个生命周期中,这里,只解释一些比较重要和常用的阶段:

  • process-resources 复制并处理资源文件,至target目标目录,准备打包。

  • compile 编译项目的源代码。

  • process-test-resources 复制并处理资源文件,至target目标测试目录。

  • test-compile 编译测试源代码。

  • test 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。

  • package 接受编译好的代码,打包成可发布的格式,如 JAR 。

  • install 将包安装至本地仓库,以让其它项目依赖。

  • deploy 将最终的包复制到远程的仓库,以让其它开发人员与项目共享。

  • dependency scope:确定依赖在什么范围内生效。
    - complie:默认使用该依赖,对编译、测试、运行三种classpath都有效;
    - test:只对测试时有效,如这里的junit;
    - provided:在运行时无效,对编译和测试有效,如servlet-api;
    - runtime:如jdbc,对测试和运行有效,在编译时无效。
    - system 和provide相同,不过被依赖项不会从maven仓库抓,而是从本地系统文件拿,一定要配合systemPath使用

三:依赖冲突

1>短路优先,优先解析路径短的版本
2>声明优先,路径长度相同,先声明先优先

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值