2021年网易Java岗面试必问,Maven私服Nexus安装与使用

Nexus是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,他还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器。除此之外,Nexus还可以管理Docker镜像。

注:Maven简介可参考Maven简介

私服的好处


没有私服时:本地仓库没有,则去中央仓库下载

搭建私服后:本地仓库没有,再去私服下载,私服没有,再去中央仓库下载

  • 减少网络带宽流量

  • 加速Maven构建

  • 部署第三方构件

  • 提高稳定性、增强控制

  • 降低中央仓库的负载

使用Docker安装Nexus私服


注意:请先自行安装Docker

[](

)查找Nexus3镜像


docker search nexus3 

[](

)拉取Nexus3镜像


docker pull sonatype/nexus3 

注:最新版本的Nexus3.18在下载依赖时有点问题,建议安装3.17版本的Nexus

具体报错是这样的:Caused by: org.apache.maven.wagon.authorization.AuthorizationException: Not authorized

[](

)查看镜像


docker images 

[](

)运行Nexus容器


#进入/opt目录,创建宿主机挂载目录并设置权限

cd /opt

mkdir nexus-data

chown -R 200 nexus-data

#运行nuxus私服

# -d:后台运行

# -p:将容器内部端口向外映射,第一个参数是宿主机端口,第二个参数容器端口

# --name:命名容器名称

# --restart always在容器退出时总是重启容器

# -v:将容器内配置、日志、数据文件等文件夹挂载到宿主机指定目录

docker run -d --name nexus3 -p 8081:8081 --restart always -v /opt/nexus-data:/nexus-data sonatype/nexus3 

如果没有设置权限,运行nexus时就会报如下错误


Warning:  Cannot open log file: ../sonatype-work/nexus3/log/jvm.log

Warning:  Forcing option -XX:LogFile=/tmp/jvm.log

Unable to update instance pid: Unable to create directory /nexus-data/instances

/nexus-data/log/karaf.log (No such file or directory)

Unable to update instance pid: Unable to create directory /nexus-data/instances

mkdir: cannot create di

你可能感兴趣的:(程序员,maven,java,docker,后端)