自己动手搭建Nexus

为什么要搭建私服

搭建Nexus私服的主要目的是为了解决工作上组件之间的jar包依赖管理。特别是基础架构部门的jar包要共享出来,就需要把jar包deploy发布到nexus私服上。

第一步: 安装Nexus

准备工作

  • 找一台linux系统的虚拟机服务器,系统centos 7
  • jdk 1.8
  • nexus-3.9.0-01-unix.tar.gz
  • 客户端安装了maven

下载与安装

  • 下载安装包:https://pan.baidu.com/s/1LjwzEax71H6emkUL3uZRcw,可以到官网上去下载最新版本的。
  • 上传并解压安装包
    xshell工具将安装包上传服务器:/usr/local/nexus目录下
    执行解压:
tar -xzvf nexus-3.9.0-01-unix.tar.gz
  • 修改配置
    可以在nexus-default.properties文件中(位于/nexus-3.9.0-01/etc/目录下)修改WEB访问端口等信息,默认为8081端口;
    防火墙放行8081端口;
  • 启动
    执行: cd nexus-3.9.0-01/bin,进入到bin目录,执行:
./nexus run 

检验是否安装成功

打开浏览器,访问:http://ip地址:8081/
默认用户名 admin 默认密码 admin123

image.png

到此,Nexus 安装完成。

第二步: 配置Nexus

私服工作原理:

配置Nexus之前,需要先了解一下私服的工作原理,如下图:


image

找依赖包的流程: 首先在本地仓库中找,如果没命中,那么就找远程私服;远程私服的查找规则同样是先找host属性的私有库,然后再去找proxy属性的远程仓库;可以配置多个proxy;

Nexus仓库类型介绍

默认安装有以下这几个仓库,在控制台也可以修改远程仓库的地址,第三方仓库等。

  • hosted(宿主仓库库) :存放本公司开发的jar包(正式版本、测试版本)
  • proxy(代理仓库):代理中央仓库、Apache下测试版本的jar包
  • group(组仓库):使用时连接组仓库,包含Hosted(宿主仓库)和Proxy(代理仓库)

分组仓库的配置

image

如上图所示,maven-public就我创建的组仓库。以及还创建了3个代理仓库,如下。

1、jCenter阿里云仓库:http://maven.aliyun.com/nexus/content/groups/public/

image

2、maven中央仓库:https://repo1.maven.org/maven2/

image

最后建立组仓库maven-public,如下。

image

组仓库中包含了jcenter、maven-central、本地maven-releases,本地maven-snapshots。

** 至此,Nexus基本就这么配置好了,主要在Group组中配置一个代理私服。**

第三步:配置下载依赖 setting.xml

添加maven仓库镜像

创建好组仓库之后,修改setting.xml文件,添加maven仓库镜像,如下:


  nexus-myself
  
  *
  Nexus myself
  http://192.168.124.29:8081/repository/maven-public/

全局配置下载依赖(即项目pom无需配置)

在maven的setting.xml文件中配置私服配置,这种方式配置后所有本地使用该配置的maven项目的pom文件都无需配置私服下载相关配置。


  
     mycof
        
        
          
          nexus
          http://192.168.124.29:8081/repository/maven-public/
          
            true
          
          
            true
          
        
            
      
        
        
          nexus
          http://192.168.124.29:8081/repository/maven-public/
          
            true
          
          
            true
           
        
      
     

激活使用上面的配置



  mycof

单独项目下载依赖(即项目pom文件中配置)

这种配置是修改单个项目的pom文件,无需修改maven的setting配置


  
    nexus
    http://192.168.124.29:8081/repository/maven-public/
    
      true
    
    
    true
    
  

建议使用全局的setting配置,一个项目组共用一个maven的setting配置,项目中就无需配置下载相关的私服仓库配置

第四步:上传jar包配置

对于中央仓库没有的jar包,需要我们自己将jar包发布到私服中去,其中jar包主要分为两类,
一类是本地自己开发供给项目组其余同事使用,这种直接配置项目的pom文件和maven的setting文件,之后deploy发布即可发布到;
另一类是第三方jar包,可以直接使用web页面上传并设置对应GAV即可;

本地maven开发的项目上传配置

1.maven的setting文件配置
这里要配置配置上传用户及仓库信息,我这里直接使用了admin用户,在nenus2.x中还内置了一个deployment/deployment123用户,在3.x该用户被移除了,这里可以自己配置角色和用户,我就直接使用admin用户了


      
        maven-releases  
        admin  
        admin123  
      
      
        maven-snapshots  
        admin  
        admin123  
    
  

2.项目中的pom文件配置

   
        
            maven-releases
            Nexus Release Repository
            http://192.168.124.29:8081/repository/maven-releases/
        
        
            maven-snapshots
            Nexus Snapshot Repository
            http://192.168.124.29:8081/repository/maven-snapshots/
        
    

3.执行maven的deploy命令
这是myeclipse中上传本地项目jar到私服,IDEA中更为简单直接点击maven周期中的deploy即可


image.png

出现uploading信息并且没报错说明上传成功。

然后到对应的仓库中查看


image.png

注意:

  1. 这里只有Snapshot的仓库上传成功,Release仓库并没有上传成功,这是因为版本号名称结尾有SNAPSHOT,默认以这个结尾是不会上传到Release仓库去的,去除就会上传到Release仓库且不会上传到快照仓库

  2. Release仓库默认不支持重复发布,可配置

  3. 注意setting中server标签下的id要和pom文件中仓库配置的id相同,即指定上传到哪个仓库

第三方jar包上传

对于第三方jar包的上传采用nenus提供的web界面上传,上传成功后需要使用该jar包的话,依赖中填写自定义的GAV即可


image.png

你可能感兴趣的:(自己动手搭建Nexus)