使用Nexus搭建maven私有库

最近我的工作内容是做SDK,做完SDK之后需要让客户来使用,直接发aar包不便于后续的版本管理,所以想到了用maven库的方式。

自己尝试了在腾讯云的轻量应用服务器上通过nexus搭建了maven私服,记录一下。

Nexus安装

如果要使用Nexus,必须安装jdk,配置JAVA_HOME等环境变量,这个不再赘述。然后去Nexus官网下载最近的版本,由于我的腾讯云服务器是windows server版本,所以我这边选择的是nexus-3.36.0-01-win64。

  1. 将下载的包传到服务器中期望的文件夹,然后解压,解压后有两个文件夹,nexus-3.36.0-01是程序文件夹,sonatype-word是工作目录,数据都在这个文件夹下。WeChatd5ed3db335780465ab010acbbd4b7842.png
  2. 配置一下环境变量,把nexus-3.36.0-01\bin的完整路径添加到Path中,我的完整路径是C:\nexus\nexus-3.36.0-01\bin

WeChat88b47ddf1ee4c995f2e7a9ce6cfa9bfc.png

  1. 可以在nexus-3.36.0-01\etc中修改application-host(访问的nexus的ip)、application-port(ip的端口)、nexus-context-path(访问的路径,有配置的话就是 host:prot/context-path),我这边用的都是默认的配置。

  2. 打开cmd,输入Nexus.exe/start 来启动服务。

  3. 在浏览器中输入localhost:8081,如果前面的3中有配置过,则输入你修改过的host:prot/context-path。如果成功进入了Nexus管理页面,则安装已经成功。登陆账号默认是admin,密码在sonatype-work/nexus3/admin.password中,登陆成功后会让你修改密码,修改之后这个admin.password会自动删除。

WeChat616d661064ceb2332f5d5100a0a96999.png

  1. 公网想要访问你刚搭建的Nexus的话,需要开放对应的端口,默认的是8081。我这边用的是腾讯云,所以是在管理台的防火墙管理规则中开放端口。

WeChatcc2e9c45a2720f3babdd5860447dca66.png

创建maven仓库

1.创建Blob Stores:如果想要更改文件存储的地方,可以新建一个Blob Stores,也可以使用默认的。 WeChatc0c7c3490b886c89fc9a65c75efc1e6f.png

2.创建仓库:在Repositories中点击Create reposiroty来创建新仓库 WeChat66a82b6c7cebda19b08700004bd5fbab.png

这里可以选择的仓库有三种,分别是:

  • hosted:宿主仓库,用来存放无法从远程仓库下载的包或者自己公司生成的包,我们上传自己的项目用的就是这种。
  • proxy:代理仓库,从配置的远程仓库中下载包到该仓库,下次用户访问时会优先检查本仓库,如果有对应的包则使用本仓库中的包,不会再从远程仓库下载。
  • group:仓库组,把多个仓库聚合起来,这样对用户只需要提供一个地址即可访问组中所有仓库。

WeChatba5f20672730c8232064c0b30e4af815.png

创建hosted仓库:输入仓库名称,选择仓库内存储项目包的版本,选择存储地址,点击Create repository即可。 Version prolicy可选的有:

  • Release:仅项目的release版本。
  • Snapshot:仅项目的snapshot版本,如果选择了Snapshot,在上传自己的包时Version需要添加-SNAPSHOT。
  • Mixed:Release和Snapshot混合。

WeChat85583a5c086ac0ac9c1da8f61510a39e.png

创建proxy仓库:输入仓库名称,在Remote storage中填入需要的远程库地址,选择存储地址,点击Create repository即可。 WeChat67fa9cad24eb66cf96e1a5fb97e0a7a7.png

创建group仓库:输入仓库名称,选择存储地址,在Member repositories中把需要的仓库都添加到Members中,点击Create repository即可。 WeChatb44416af9eafb5c856533f16fe0e414b.png

Guess you like

Origin juejin.im/post/7032572188360179720