zoukankan      html  css  js  c++  java
  • Nexus搭建私服

    什么是Nexus

    Nexus是一个强大的Maven仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问。
    

    运行原理

    本地仓库与私服处在同一个局域网中,当本地仓库没有资源时,会向私服发起请求获取资源(同一个局域网,下载网速快)。如果私服上没有资源,再向远程仓库下载资源。
    当开发人员开发项目时,已经将所有依赖的资源通过私服下载下来后,有新同事来了,只需要将maven配置连接到私服,就不需要从远程仓库下载,从而节约了宽带和下载时间。
    

    在本地构建nexus私服的好处

    1)加速构建;
    2)节省带宽;
    3)节省中央maven仓库的带宽;
    4)稳定(应付一旦中央服务器出问题的情况);
    5)控制和审计;
    6)能够部署第三方构件;
    7)可以建立本地内部仓库;
    8)可以建立公共仓库
    

    测试环境:一台IP为192.168.2.20的虚拟机

    一、下载文件并解压

    tar -zxvf nexus-3.3.2-02-unix.tar.gz
    

    二、修改配置文件

    vim nexus-3.3.2-02/etc/nexus-default.properties
    
    application-port=8081
    application-host=192.168.2.20
    nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
    nexus-context-path=/nexus
    
    # Nexus section
    nexus-edition=nexus-pro-edition
    nexus-features=
     nexus-pro-feature
    
    vim nexus-3.3.2-02/bin/nexus.rc
    
    run_as_user=root
    

    三、启动

    nexus-3.3.2-02/bin/nexus start
    
    访问http://192.168.2.20:8081/nexus
    安装成功后有两个默认账号admin、anonymous,其中admin具有全部权限默认密码admin123;anonymous作为匿名用户,只具有查看权限。
    

    四、Nexus配置说明

    点击【Browse】下的【Components】,如图
    

    1.maven库名称说明

    1)maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar
    2)maven-releases:私库发行版jar
    3)maven-snapshots:私库快照(调试版本)jar
    4)maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用。
    

    2.maven库类型说明

    1)group(仓库组类型):又叫组仓库,用于方便开发人员自己设定的仓库
    2)hosted(宿主类型):内部项目的发布仓库(内部开发人员,发布上去存放的仓库)
    3)proxy(代理类型):从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage Location属性的值即被代理的远程仓库的路径)
    4)virtual(虚拟类型):虚拟仓库(这个基本用不到,重点关注上面三个仓库的使用)
    

    五、连接私服(从nexus服务器上下载jar资源)

    修改maven的setting.xml文件

    <server>
          <id>nexus</id>
          <username>admin</username>
          <password>admin123</password>
    </server>
    
    <!-- 表示maven从指定的url服务器中获取jar资源 -->
    <mirror>
          <id>nexus</id>
          <mirrorOf>*</mirrorOf>
          <url>http://192.168.2.20:8081/nexus/repository/maven-public/</url>
    </mirror>
    
    之后在项目中的pom.xml中添加jar包依赖,如果本地仓库没有该jar包资源,那么maven就会请求到nexus服务器获取jar包。
    

    六、发布项目(将本地jar包上传到nexus中)

    修改maven的setting.xml文件,添加以下配置:

    <server>
          <id>releases</id>
          <username>admin</username>
          <password>admin123</password>
        </server>
    
        <server>
          <id>snapshots</id>
          <username>admin</username>
          <password>admin123</password>
        </server>
    

    修改项目中pom.xml文件配置

    <repositories>
    		<repository>
    			<id>maven-central</id>
    			<name>maven-central</name>
    			<url>http://192.168.2.20:8081/nexus/repository/maven-central/</url>
    			<snapshots>
    				<enabled>true</enabled>
    			</snapshots>
    			<releases>
    				<enabled>true</enabled>
    			</releases>
    		</repository>
    	</repositories>
    
    <distributionManagement>
    		<snapshotRepository>
    			<id>snapshots</id>
    			<name>Nexus Snapshots</name>
    			<url>http://192.168.2.20:8081/nexus/repository/maven-snapshots/</url>
    		</snapshotRepository>
    		<repository>
    			<id>releases</id>
    			<name>Nexus releases</name>
    			<url>http://192.168.2.20:8081/nexus/repository/maven-releases/</url>
    		</repository>
    	</distributionManagement>
    
    注意:上边的id值需要与setting.xml文件中的id值一致
    如果要发布SNAPSHOT版本,项目version的值加上-SNAPSHOT,jar包会发布到maven-snapshots
    如果要发布RELEASES版本,去掉项目中version的SNAPSHOT,jar包会发布到maven-releases
    本次测试以发布SNAPSHOT版本为例:
    



  • 相关阅读:
    全排列生成算法
    Jekyll + Github 搭建属于你的静态博客
    Merge k Sorted Lists
    Manacher's algorithm
    ADWORLD web/warmup
    数据结构/chap1 &chap2/选择判断/复习
    数据结构/PTA-两个有序链表序列的交集/链表
    数据结构/PTA-符号配对/栈
    数据结构/PTA-列车调度/栈/数组
    数据结构/PTA-堆栈操作合法性/数组/
  • 原文地址:https://www.cnblogs.com/moonlightL/p/7323722.html
Copyright © 2011-2022 走看看