使用sonatype nexus3.x搭建私服

1,524 阅读2分钟

nexus 可以用来做什么?

搭建 maven, npm, docker 私服

搭建私服有什么用?

  • 缓存依赖结果,加快二次依赖下载
  • 共享公司内部的开发组件
  • 减少外部网络环境对开发影响

私服搭建

下载

Download (sonatype.com)

官网无法下载,可以从网盘获取

pan.baidu.com/s/1Qj4ZWRT9…

提取码: h9q6

解压后得到这两个文件夹

image.png

nexus-3.x:该目录中包含了 Nexus 3.x 运行所需要的文件,如启动脚本、依赖 jar 包等。

sonatype-work:该目录中包含了 Nexus 3.x 生成的配置文件、日志文件等。

打开nexus-3.x/bin 目录,其中nexus.exe 是可执行文件

使用管理员运行cmd:

安装服务:nexus.exe /install
启动服务:nexus.exe /start
带控制台的启动服务:nexus.exe /run
停止服务:nexus.exe /stop
卸载服务:nexus.exe /uninstall

安装好服务后,就可以在服务面板看到该服务了

image.png

通过 http://localhost:8081/ 可以访问 nexus 界面了

默认账号: admin

默认密码在 sonatype-work\nexus3\admin.password文件中

首次登录之后,会要求你修改密码,这里我改为如下密码

密码改为: Nexus

紧接着还会提示你这个是否允许匿名访问,这个根据你的需求来选择即可

如果想修改访问端口或ip可以在sonatype-work\nexus3\etc\nexus.properties中修改

image.png

搭建 npm 私服

image.png

image.png

image.png

image.png

image.png

image.png

Not Found Cache TTL 表示当一个文件没有找到后,缓存这一不存在的信息的时间。以默认值1440分钟为例,如果某文件不存在,那么在之后的1440分钟内,如果Nexus再次得到该文件的请求,它将直接返回不存在的信息,而不会查找文件系统。

npm install --force

可以忽略这个TTL,改为强制重新下载

创建npm-hosted ,用于发布个人开发的npm组件

image.png

image.png

创建npm group,用于把几个仓库组组合在一起公开连接使用

image.png

image.png

修改本地npm镜像地址为npm group的地址

image.png

image.png

npm set registry http://localhost:8081/repository/npm-public/

npm get registry

http://localhost:8081/repository/npm-public/

发布自己的npm组件到私服

npm login –registry=http://localhost:8081/nexus/repository/npm-hosted

# 此时会要求输入nexus的账号和密码

发布npm组件

npm publish –registry=http://localhost:8081/nexus/repository/npm-hosted

搭建 maven 私服

image.png

image.png

image.png

创建maven-hosted用于发布个人jar

image.png

image.png

image.png

image.png

image.png

image.png

maven使用,将项目上传到私服,将第三方jar上传到私服,将私服的项目下载到本地_mirror里的id对应的是哪个标签里的id-CSDN博客

nexus相关问题解决

nexus依赖下载超时,导致npm从nexus下载依赖时提示找不到 xxx 依赖问题

修改配置,增加超时时间(修改完后,记得重启nexus

<nexus-dir>/bin/nexus.vmoptions

-Dnetworkaddress.cache.ttl=60

<nexus-dir>/etc/nexus.properties

nexus.s3.connection.ttl=60s

重启完之后,再次下载依赖,记得强制下载,避免使用缓存,导致再次出现找不到 xxx 依赖问题

npm install --force