nexus私服

nexus是什么?

nexus是maven仓库管理器,通过nexus可以搭建maven仓库,同时nexus还提供了强大的仓库管理功能,构件搜索功能等。

私服是什么?

公司在自己的局域网内搭建的自己的远程仓库服务器,就称为私服。私服服务器就是公司内部的maven远程仓库,每个员工的电脑上安装maven软件并且连接私服服务器,员工将自己开发的项目打成jar并发布到私服服务器,其它项目组则可以从私服服务器下载所依赖的构件(jar)。

私服还充当一个代理服务器,当私服上没有jar包时会从互联网中央仓库自动下载,如下图所示。
nexus私服_第1张图片

为什么要搭建nexus私服?

为什么要搭建nexus私服呢?原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了nexus私服的电脑访问maven的远程仓库了。
nexus私服_第2张图片

私服仓库类型

nexus的仓库有4种类型

  1. hosted
    宿主仓库,一般都是部署自己的jar到这个类型的仓库中,也就是说这个类型的仓库存放本公司自己开发的jar包。宿主仓库包括三部分,它们分别是:
    nexus私服_第3张图片
  2. proxy
    代理仓库,用于代理远程的公共仓库,如maven中央仓库。用户连接私服,私服自动去中央仓库下载jar包或者插件,或者下载Apache下测试版本的jar包。
  3. group
    仓库组(或者组仓库),用来合并(包含)多个hosted/proxy仓库,通常我们都是配置自己的maven连接仓库组,连接仓库组之后,既可以访问我本公司的宿主仓库,又可以访问代理仓库了。
  4. virtual
    虚拟类型仓库,兼容maven1版本的jar或者插件,不过这个类型的仓库已经被废弃了!

上传jar包到私服

  1. 配置settings.xml
    要想上传jar包到私服,首先就需要在客户端即部署crm-dao项目的电脑上配置maven环境,并修改conf/settings.xml文件,配置连接私服的用户名和密码,也即做认证。此用户名和密码用于私服校验,因为私服需要知道上传的账号和密码是否和私服中的账号和密码一致。

    >
      >releases>
      >admin>
      >admin123>
    >
    >
      >snapshots>
      >admin>
      >admin123>
    >
    
  2. 配置项目的pom.xml
    在要上传的项目的pom.xml文件中配置如下内容:

    >
        >
            >releases>
            >http://localhost:8081/nexus/content/repositories/releases/>
        > 
        >
            >snapshots>
            >http://localhost:8081/nexus/content/repositories/snapshots/>
        > 
    >
    

就是在配置jar包上传路径,也即配置私服仓库的地址。配置好之后,本公司的自己的jar包会上传到私服的宿主仓库,并且根据项目的版本号决定上传到哪个宿主仓库,如果版本为release则上传到私服的Releases仓库,如果版本为snapshot则上传到私服的Snapshots仓库。

以上配置的私服仓库对应的url地址,在自己安装的私服上自行查看

  1. 将项目打成jar包发布到私服
    首先启动nexus服务,然后对crm-dao项目执行deploy命令,之后就能在私服上找到上传的jar包。

从私服下载jar包到本地仓库

没有配置nexus之前,如果本地仓库没有,那么会去中央仓库下载,通常在企业中会在局域网内部署一台私服服务器,有了私服之后,本地项目会首先去本地仓库找jar包,如果没有找到则连接私服从私服下载jar包,如果私服没有jar包私服同时作为代理服务器从中央仓库下载jar包,这样做的好处是一方面由私服对公司项目的依赖jar包统一管理,一方面提高下载速度,项目连接私服下载jar包的速度要比项目连接中央仓库下载jar包的速度快得多。

  1. 管理仓库组
    nexus中包括很多仓库,hosted中存放的是企业自己发布的jar包及第三方公司的jar包,proxy中存放的是中央仓库的jar包。为了方便从私服下载jar包,可以将多个仓库组成一个仓库组,每个工程需要连接私服的仓库组下载jar包。仓库组在私服上进行配置

  2. 在settings.xml文件中配置仓库
    在客户端的settings.xml文件中配置私服的仓库,也称之为配置模板。由于settings.xml文件中没有repositories的配置标签,所以需要使用profile标签来定义仓库。

    >
    	>dev>
    	>
    		>
    			>nexus>
    			>http://192.168.153.253:8081/repository/maven-public/>
    			>
    				>true>
    			>
    			>
    				>true>
    			>
    		>
    	>
    	>
    		>
    			>public>
    			>Public Repositories>
    			>http://192.168.153.253:8081/repository/maven-public/>
    		>
    	>
    >
    

    一定要注意,以上配置要添加在settings.xml文件中的profiles标签内。
    使用profile标签定义仓库之后,需要激活才可生效,也即需要激活模板。所以,还需要在settings.xml文件中添加如下配置。

    >
        >dev>
    >
    

总结

在项目的pom.xml文件中添加一个依赖,此依赖在本地仓库和私服中都不存在,此时,maven会先从本地仓库找,本地仓库没有再从私服找,私服没有再去中央仓库下载,jar包下载成功后,在私服、本地仓库中分别存储一份。

你可能感兴趣的:(Maven系列)