nexus 私有仓库的搭建——筑梦之路

nexus支持很多的仓库,比如yum、apt、pip、maven等,我这里主要使用maven,就以maven为例做个记录。

环境准备:
服务器连接外网,因为nexus作为内网的仓库,只是从网络上下载到本地进行缓存,下次拉取更快,没有外网访问是不能拉取远程的包的,这里非常重要!!!!

操作系统:centos 7 x86_64 minal

docker-ce版本:19.03 使用docker可以方便快捷部署 可移植性好

1.搜索一下nexus

docker search nexus

2.拉取镜像

docker pull docker.io/sonatype/nexus3

3.建立挂载的数据目录

mkdir -p /data/nexus-data

chown -R 200.200 /data/nexus-data

4.创建容器实例

docker run -tid -p 80:8081 --name nexus -e NEXUS_CONTEXT=nexus -v /data/nexus-data:/nexus-data --restart=always docker.io/sonatype/nexus3

5.web访问

http://192.168.1.20/nexus/

默认管理员admin 密码admin123

进入管理界面后

  • Browse可以查看当前有多少仓库,搭建好的Nexus,默认会带有一些maven仓库,一般使用这些仓库就足够了。
  • 默认仓库说明    

          maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar

          maven-releases:私库发行版jar,初次安装请将Deployment policy设置为Allow redeploy

          maven-snapshots:私库快照(调试版本)jar

          maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml或项目pom.xml中使用

  • 仓库类型    

           Group:这是一个仓库聚合的概念,用户仓库地址选择Group的地址,即可访问Group中配置的,用于方便开发人员自己设定的仓库。maven-public就是一个Group类型的仓库,内部设置了多个仓库,访问顺序取决于配置顺序,3.x默认Releases,Snapshots,                                  Central,当然你也可以自己设置。
           Hosted:私有仓库,内部项目的发布仓库,专门用来存储我们自己生成的jar文件
           3rd party:未发布到公网的第三方jar (3.x去除了)
           Snapshots:本地项目的快照仓库
           Releases: 本地项目发布的正式版本
           Proxy:代理类型,从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage属性的值即被代理的远程仓库的路径),如可配置阿里云maven仓库
          Central:中央仓库
          Apache Snapshots:Apache专用快照仓库(3.x去除了)

 

添加新的代理源:

设置——repository——repositories——create repository——maven2——cache 288000 

逐个增加常用代理:

1. aliyun
http://maven.aliyun.com/nexus/content/groups/public
2. apache_snapshot
https://repository.apache.org/content/repositories/snapshots/
3. apache_release
https://repository.apache.org/content/repositories/releases/
4. atlassian
https://maven.atlassian.com/content/repositories/atlassian-public/
5. central.maven.org
http://central.maven.org/maven2/
6. datanucleus
http://www.datanucleus.org/downloads/maven2
7. maven-central (安装后自带,仅需设置Cache有效期即可)
https://repo1.maven.org/maven2/
8. nexus.axiomalaska.com
http://nexus.axiomalaska.com/nexus/content/repositories/public
9. oss.sonatype.org
https://oss.sonatype.org/content/repositories/snapshots
10.pentaho
https://public.nexus.pentaho.org/content/groups/omni/

  设置maven-public 将这些代理加入Group,最好将默认的maven库放到最底下

设置私用仓库可重复发布

  Nexus安装后自带maven-releases,maven-snapshots两个仓库,用于将生成的jar包发布在这两个仓库中,在实际开发中需要将maven-releases设置为可以重复发布

deployment policy:allow redeploy

 

Maven配置使用Nexus

 修改.m2下面的setting.xml文件配置,以下只是示例,根据实际情况修改配置






  
  ${user.home}/.m2/repository

  

  

  
  
    
  

  
  
    
  

  
  
    
    
    
      releases
      admin
      admin23
    
    
    
      snapshots
      admin
      admin123
    

    
  

  
  
    
    
      HolliParkMirror
      *
      HolliPark Repository Mirror.
      http://localhost:8082/nexus/repository/maven-public/
    
       
  

  
  
    
      HolliPark
      
        
          nexus
          Public Repositories
          http://localhost:8082/nexus/repository/maven-public/
          
            true
          
        
      
        
          central
          Central Repositories
          http://localhost:8082/nexus/repository/maven-central/
          
            true
          
          
            false
          
        
        
        
          release
          Release Repositories
          http://localhost:8082/nexus/repository/maven-releases/
          
            true
          
          
            false
          
        
        
        
          snapshots
          Snapshot Repositories
          http://localhost:8082/nexus/repository/maven-snapshots/
          
            true
          
          
            true
          
        
      
      
      
        
          plugins
          Plugin Repositories
          http://localhost:8082/nexus/repository/maven-public/
        
      
    
    
    
    
  

  
  
  
    HolliPark
  
  

创建私有公库

修改项目的pom.xml

 在pom文件中加入distributionManagement节点,注意:pom.xml中repository里的id需要和.m2中setting.xml里的server id名称保持一致

   
        
releases        
Nexus Release Repository        http://localhost:8082/nexus/repository/maven-releases/    
    
        
snapshots        
Nexus Snapshot Repository        http://localhost:8082/nexus/repository/maven-snapshots/   

发布私有公库

mvn deploy

以上仅作为笔记参考!

你可能感兴趣的:(linux系统运维,Java技术,maven,nexus)