最近我的工作内容是做SDK,做完SDK之后需要让客户来使用,直接发aar包不便于后续的版本管理,所以想到了用maven库的方式。
自己尝试了在腾讯云的轻量应用服务器上通过nexus搭建了maven私服,记录一下。
Nexus安装
如果要使用Nexus,必须安装jdk,配置JAVA_HOME等环境变量,这个不再赘述。然后去Nexus官网下载最近的版本,由于我的腾讯云服务器是windows server版本,所以我这边选择的是nexus-3.36.0-01-win64。
- 将下载的包传到服务器中期望的文件夹,然后解压,解压后有两个文件夹,nexus-3.36.0-01是程序文件夹,sonatype-word是工作目录,数据都在这个文件夹下。
- 配置一下环境变量,把nexus-3.36.0-01\bin的完整路径添加到Path中,我的完整路径是C:\nexus\nexus-3.36.0-01\bin
-
可以在nexus-3.36.0-01\etc中修改application-host(访问的nexus的ip)、application-port(ip的端口)、nexus-context-path(访问的路径,有配置的话就是 host:prot/context-path),我这边用的都是默认的配置。
-
打开cmd,输入Nexus.exe/start 来启动服务。
-
在浏览器中输入localhost:8081,如果前面的3中有配置过,则输入你修改过的host:prot/context-path。如果成功进入了Nexus管理页面,则安装已经成功。登陆账号默认是admin,密码在sonatype-work/nexus3/admin.password中,登陆成功后会让你修改密码,修改之后这个admin.password会自动删除。
- 公网想要访问你刚搭建的Nexus的话,需要开放对应的端口,默认的是8081。我这边用的是腾讯云,所以是在管理台的防火墙管理规则中开放端口。
创建maven仓库
1.创建Blob Stores:如果想要更改文件存储的地方,可以新建一个Blob Stores,也可以使用默认的。
2.创建仓库:在Repositories中点击Create reposiroty来创建新仓库
这里可以选择的仓库有三种,分别是:
- hosted:宿主仓库,用来存放无法从远程仓库下载的包或者自己公司生成的包,我们上传自己的项目用的就是这种。
- proxy:代理仓库,从配置的远程仓库中下载包到该仓库,下次用户访问时会优先检查本仓库,如果有对应的包则使用本仓库中的包,不会再从远程仓库下载。
- group:仓库组,把多个仓库聚合起来,这样对用户只需要提供一个地址即可访问组中所有仓库。
创建hosted仓库:输入仓库名称,选择仓库内存储项目包的版本,选择存储地址,点击Create repository即可。 Version prolicy可选的有:
- Release:仅项目的release版本。
- Snapshot:仅项目的snapshot版本,如果选择了Snapshot,在上传自己的包时Version需要添加-SNAPSHOT。
- Mixed:Release和Snapshot混合。
创建proxy仓库:输入仓库名称,在Remote storage中填入需要的远程库地址,选择存储地址,点击Create repository即可。
创建group仓库:输入仓库名称,选择存储地址,在Member repositories中把需要的仓库都添加到Members中,点击Create repository即可。