docker 部署 maven私服【nexus3】
######
1.maven介绍
Apache Maven是一个创新的软件项目管理和综合工具。 Maven提供了一个基于项目对象模型(POM)文件的新概念来管理项目的构建,可以从一个中心资料片管理项目构建,报告和文件。 Maven最强大的功能就是能够自动下载项目依赖库。 Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。 在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,Maven让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。 Maven项目的结构和内容在一个XML文件中声明,pom.xml 项目对象模型(POM),这是整个Maven系统的基本单元。 Maven提供了开发人员的方式来管理: 1)Builds 2)Documentation 3)Reporting 4)Dependencies 5)SCMs 6)Releases 7)Distribution 8)mailing list 概括地说,Maven简化和标准化项目建设过程。处理编译,分配,文档,团队协作和其他任务的无缝连接。 Maven增加可重用性并负责建立相关的任务。 Maven最初设计,是以简化Jakarta Turbine项目的建设。在几个项目,每个项目包含了不同的Ant构建文件。 JAR检查到CVS。 Apache组织开发Maven可以建立多个项目,发布项目信息,项目部署,在几个项目中JAR文件提供团队合作和帮助。 Maven主要目标是提供给开发人员: 1)项目是可重复使用,易维护,更容易理解的一个综合模型。 2)插件或交互的工具,这种声明性的模式。
2.私服介绍
私服是指私有服务器,是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构建。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。
![](https://img2020.cnblogs.com/blog/1274745/202011/1274745-20201120142220126-1589257270.png)
3.nexus介绍
Nexus是一个强大的Maven仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问。 如果使用了公共的Maven仓库服务器,可以从Maven中央仓库下载所需要的构件(Artifact),但这通常不是一个好的做法。 正常做法是在本地架设一个Maven仓库服务器,即利用Nexus私服可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个Artifact。 Nexus在代理远程仓库的同时维护本地仓库,以降低中央仓库的负荷,节省外网带宽和时间,Nexus私服就可以满足这样的需要。 Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。 Nexus使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过m2eclipse与Eclipse集成使用。 Nexus支持WebDAV与LDAP安全身份认证。 Nexus还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,它占用较少的内存,基于简单文件系统而非数据库。 为什么要构建Nexus私服? 如果没有Nexus私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话,还会影响项目的进程。很多情况下项目的开发都是在内网进行的,
连接不到maven仓库怎么办呢?开发的公共构件怎么让其它项目使用?这个时候我们不得不为自己的团队搭建属于自己的maven私服,这样既节省了网络带宽也会加速项目搭建的进程,当然前提条件就是你的私服中拥有项目所需的所有构件。 总之,在本地构建nexus私服的好处有: 1)加速构建; 2)节省带宽; 3)节省中央maven仓库的带宽; 4)稳定(应付一旦中央服务器出问题的情况); 5)控制和审计; 6)能够部署第三方构件; 7)可以建立本地内部仓库; 8)可以建立公共仓库 这些优点使得Nexus日趋成为最流行的Maven仓库管理器。
4.nexus3镜像下载地址
https://hub.docker.com/r/sonatype/nexus3/tags
5.宿主机创建nexus数据存放目录【保证数据持久化】
mkdir -p /home/wx/nexus3-data chown 200.root /home/wx/nexus3-data
***进入容器查看数据目录权限得知,必须授权数据目录为200
6.容器部署nexus
docker pull sonatype/nexus3:3.28.1
docker run -d -p 8081:8081 --name nexus -v /home/wx/nexus3-data:/nexus-data sonatype/nexus3:3.28.1
7.首次部署查看登录页面admin密码[宿主机查看]
cat /home/wx/nexus3-data/admin.password e15b39ff-49f8-4830-b7e4-47a02ed9e982
旧版本部署账号密码【admin/admin123】
######