一、前言

  为什么要在本地开发机器上安装nexus?自己在本地搭建了一个nexus私服,即可以使用公司nexus私服仓库中的依赖,也可以上传和使用自己的测试包依赖。

 

二、nexus下载

  Download Nexus Repository OSS

 

三、解压

  将下载的nexus-3.14.0-04-win64.zip解压到自定义目录即可。

 

四、配置nexus的端口和上下文路径

打开zip解压文件下的 ../nexus-3.14.0-04-win64/nexus-3.14.0-04/etc/nexus-default.properties。

    如下属性可以自定义修改。

application-host : Nexus服务监听的主机
application-port: Nexus服务监听的端口,
nexus-context-path : Nexus服务的上下文路径
  通常可以不做任何修改,但个人习惯于修改 application-host 为127.0.0.1(关于0.0.0.0与127.0.0.1的区别自行检索),我这里只修改了端口。

 

五、运行环境配置

  打开解压目录下的 ../nexus-3.14.0-04-win64/nexus-3.14.0-04/bin/nexus.vmoptions

  可以在下图配置运行时的最大堆、最小堆等,可以根据个人的电脑以及需要修改,默认配置如下。

  

六、nexus安装

在.../nexus-3.14.0-04-win64/nexus-3.14.0-04/bin 目录下,以管理员身份运行cmd 
1. nexus.exe /run 命令可以启动nexus服务(参考官方文档) 
2. 安装nexus本地服务来启动(推荐使用这种方式,参考官方文档),命令如下所示。
nexus.exe /install <optional-service-name>  //安装nexus服务

 七、启动/关闭nexus服务

nexus.exe /start <optional-service-name>   //启动nexus服务

 

nexus.exe /stop <optional-service-name>    //停止nexus服务

 八、登录

  默认的用户名和密码分别是:admin/amdin123

  如果没有做任何端口和上下文路径的修改,直接访问 http://localhost:8081即可。

 

九、nexus仓库类型介绍

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

仓库名
作用
hosted(宿主仓库库)
存放本公司开发的jar包(正式版本、测试版本)
proxy(代理仓库)
代理中央仓库、Apache下测试版本的jar包
group(组仓库)
使用时连接组仓库,包含Hosted(宿主仓库)和Proxy(代理仓库)
virtual (虚拟仓库)
基本用不到,重点关注上面三个仓库的使用

 

 

 十、分组仓库的使用

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

1、jcenter仓库:https://jcenter.bintray.com/
  
  2、maven中央仓库:https://repo1.maven.org/maven2/
  
  3、公司内部nexus仓库,这里就不给出了
     最后建立组仓库maven-public,如下。
  
  组仓库中包含了公司私服、jcenter、maven-central、本地maven-releases,本地maven-snapshots。
  创建好组仓库之后,修改setting.xml文件,添加maven仓库镜像,如下。
<server>
  <id>local</id>
  <username>hjzgg</username>
  <password>hjzgg</password>
</server>
<mirror>
  <id>local</id>
  <mirrorOf>central</mirrorOf>
  <name>localhost nexus</name>
  <url>http://localhost:8082/repository/maven-public/</url>
</mirror>
  接着修改maven项目中的pom.xml,如下。
<distributionManagement>
    <repository>
        <id>maven-releases</id>
        <name>Nexus Release Repository</name>
        <url>http://localhost:8082/repository/maven-releases/</url>
    </repository>
    <snapshotRepository>
        <id>maven-snapshots</id>
        <name>Nexus Snapshot Repository</name>
        <url>http://localhost:8082/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>
  如果是gradle项目,修改init.gradle文件,如下。
uploadArchives {
    def nexus_credentials = [userName: "hjzgg", password: "hjzgg"]
    repositories.mavenDeployer {
        snapshotRepository(url: "http://127.0.0.1:8082/repository/maven-snapshots/") {
            authentication(nexus_credentials)
        }
        repository(url: "http://127.0.0.1:8082/repository/maven-releases/") {
            authentication(nexus_credentials)
        }
    }
}