本文适用范围:用户规模不大,不需要考虑maven仓库负载均衡的群体。

为何部署nexus3

  之前由于懒某些原因,所有开发人员自己定义.m2的settings,大多使用ali提供的maven仓库,但是最近发现这样做有一定的问题:

  1、有几天aliyun的服务不大稳定,不管是maven仓库还是alidns都连不上;

  2、如果换回maven central下载jar包会偏慢;

  3、即使aliyun服务稳定,但是有些jar包没有,如果单纯把本地central改为aliyun服务会导致有些pom文件中的依赖下载不了;

  当然,上述3点其实也还好,毕竟换回central只是慢了点而已- -虽然是每个人都慢了点。

  但是最近有个需求还挺明显的:我们这有一些自己编写自己用的基础库,这类基础库还会经常更新,现在有个工程需要引用这些包。把jar包加到新工程并用git同步的话每次更新都要打jar包并且拷到新工程下,不好区分jar包版本,其次是如果使用windows的eclipse开发工程,更新jar包会出问题,eclipse打开时会把依赖的jar打开,此时更新jar包会失败。而且失败后有时会出现奇怪的git问题。

  所以决定部署nexus3,优点很明显,通过统一的本地服务器下载jar包,多人开发不会重复下载,一是降低central压力二是节约下载jar包时间;服务稳定,自己的服务器总不能说连不上就连不上了,就算外网崩了只要服务器上有jar包maven服务就依旧可用;可以自定义jar包了!不用每次还得把自己的基础库pom文件内容拷贝到新工程了,引用自己的基础库dependencies里就会把依赖的所有jar包都加进来,而且不用担心windows用eclipse开发git同步代码时报错。

超快速部署nexus3

  emmmmm.....思考了一下,直接拉docker镜像显而易见是最简单的部署方式,性能足够,不会修改本地环境,并且这样做还有一个好处是如果以后需要进行负载均衡可以较为方便的迁移到k8s上。那么开始:

  dockerhub官方镜像:https://hub.docker.com/r/sonatype/nexus3/

拉取命令:

见https://www.cnblogs.com/gaoze/p/10784961.html,此镜像在我这里被植入了挖矿程序,本人从来未exec -it或者使用其他命令修改此镜像创建的container,只是从mvn repositories中加入了热门的仓库站,并添加了个用户,这样还出问题很难相信不是image的问题。现在建议通过本博客提供的自建image方式自己创建maven仓库。

执行命令:

$ docker volume create --name nexus-data
$ docker run -d -p 8081:8081 --name nexus -v nexus-data:/nexus-data my-nexus3

  等待10分钟,部署完成!

事实证明,通过官方下载的tar包部署的nexus3私服根本不需要这么久时间进行部署,仅仅需要约半分钟即可部署完成,系统启动状态可以通过docker logs containerID来查看,官方提供的版本约半分钟即可started。

解释与说明

  上面确实是部署完成了,但是总要说一下注意事项和为什么这样就部署完成了:

  首先拉个镜像回来,然后我们创建了一个volume,这个相当于底层存储,这样做的好处是即使我们的nexus container某些原因坏掉了,但是我们的的底层数据:如曾经下过的jar包和pom文件,nexus组件升级补丁啥都都还在。重新用image创建一个container继续挂载在此文件夹下就ok了。

  然后说为啥要等个10分钟,这是有原因的,nexus启动后会检测nexus component版本,然后进行升级,在升级过程中如果被打断会出bug,例如我自己部署的时候习惯先不加-d(总觉得并不能一次部署成功),等了几分钟看差不多时ctrl+c打断掉再创建一个-d的container正式运行,但是由于我们存储挂载在volume上的,未完成的升级也在那个文件夹下,所以部署的时候还是会报错,找了好久问题发现应该删掉volume重新建一个空白的,加载空白volume就一切正常了。

nexus3配置

  这步其实还挺重要的,我们一点一点来看,首先登陆系统界面:IP:8081,点击上面的设置按钮(那个齿轮)

  点击repositories

  可以看到这是我的一个仓库页面,里面除了一些默认的仓库以外,额外添加了许多新仓库:

  先说本地仓库:

  maven-releases:管理本地jar包的东西,release版,需要上传自己的jar包时release上传到这个仓库。

  maven-snapshots:管理本地jar包的东西,snapshot版,需要上传自己的jar包时snapshot上传到这个仓库。

  maven-public:可以用来整合多个仓库源,在.m2/中的settings可以把central源设置成这个玩意。

  maven-central:看起来是central其实并不是我们常用的那个central,所以我又加了一个central源代表真正的central。

  知道这几个默认仓库有啥用了并不能真正进行使用,我们还需要加入其他源,不然有些jar包找不到,照着下面设置就行,version policy不知道选啥就用release,需要用snapshot选mixed:

  至于加入哪些源,建议把如下都加上,如果觉得再加个国内的那就再加个ali的:

  然后选择maven-public,在里面的group项内把创建好的所有源都拖到group里,然后看心情调整一下顺序就可以了。访问时在.m2/文件中把central源改为public这个即可,如:

  <mirrors><mirror><id>nexus</id><name>private maven</name><url>http://192.168.xxx.xxx:18081/repository/maven-public/</url><mirrorOf>*</mirrorOf>        </mirror></mirrors>

转载于:https://www.cnblogs.com/gaoze/p/9582937.html

简单快速部署nexus3私服相关推荐

  1. 如何快速部署国人开源的 Java 博客系统 Tale

    喜欢我们的文章?!欢迎大家关注腾讯云技术社区-简书主页哦~ 文末有彩蛋,不要错过! 除了闷头专研技术之外,程序员还需要不断地写作进行技术积累,写博客是其中最重要的方式之一.商业博客平台不少,但是更符合 ...

  2. 性能领先,即训即用,快速部署,飞桨首次揭秘服务器端推理库

    允中 发自 凹非寺 量子位 编辑 | 公众号 QbitAI 假如问在深度学习实践中,最难的部分是什么?猜测80%的开发者都会说: "当然是调参啊." 为什么难呢?因为调参就像厨师根 ...

  3. 区块链开源实现fabric快速部署及CLI体验

    区块链开源实现fabric快速部署及CLI体验 2018年05月22日 09:53:41 阅读数:1359 标签: hyperledgerfabric区块链联盟链PBFT 更多 个人分类: 区块链技术 ...

  4. 拒做工具人!教你一键快速部署应用到容器镜像仓库

    作者 | Cloud Toolkit 近年来,容器技术以迅雷不及掩耳之势迅速蔓延开来,容器技术基于各种场景的尝试与实践更是层出不穷,它的崛起改变了我们创建.发布与运行应用的方式,实现了资源的独立与隔离 ...

  5. 快速部署 Spring PetClinic 到函数计算平台

    简介 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute):[函数计算](https://statistics.functioncompute.com/?title ...

  6. 使用FIT2CLOUD在青云QingCloud快速部署和管理Kubernetes集群

    一.Kubernetes概述 Kubernetes是Google一直在推进的容器调度和管理系统,是Google内部使用的容器管理系统Borg的开源版本.它可以实现对Docker容器的部署,配置,伸缩和 ...

  7. 【知云】第十二期:处于风口浪尖上的直播视频网站,如何快速部署直播监管?...

    摘要:广电总局要求视频直播网站的视频内容保存两个月以上,针对于这样的要求,视频直播网站有没有简单快捷的部署方式呢?本文中阿里云布道师爅冉将与大家分享阿里云直播监管冷存储解决方案. 想要看视频版?请点击 ...

  8. 使用VMDepot镜像快速部署CKAN开放数据门户

    最新发布的CKAN VMDepot镜像针对中国用户强化了中文支持,提升了与MS Office办公软件的互操作性,并集成了常用插件和最佳实践配置参数. 使得CKAN原本十分复杂繁琐的部署流程变得非常简单 ...

  9. 请在贵网站的根目录下部署一个文件_使用 github pages, 快速部署你的静态网页

    使用 github pages, 快速部署你的静态网页 Github Pages 官网 Github Pages: Websites for you and your projects. Hosted ...

最新文章

  1. nlp 优缺点 混淆度_NLP中文分词的评估指标
  2. Google BigQuery——企业级大数据分析工具
  3. AbstractQueuedSynchronizer 原理分析 - Condition 实现原理
  4. 管理员账户遇到“操作需要管理员权限”解决方法
  5. linux sed 找出前后三行,Linux Sed 使用示例
  6. php mdecrypt generic,mdecrypt_generic
  7. 洛谷P1801 黑匣子 双堆套路的使用
  8. bzoj 4009 接水果 整体二分
  9. js对html节点的操作
  10. JavaScript笔记(6)
  11. 计蒜客---函数规律
  12. Halcon PDF文档(extension_package_programmers_manual)学习总结
  13. Hbase Cellutil源码
  14. Java数据结构:双向链表Double Linked List基础笔记
  15. lena图的直方图以及与其他图像的直方图匹配
  16. 一个非常有意思的网站
  17. 【论文笔记】LIME: low-light image enhancement via illumination map estimation
  18. 百度地图车辆运动轨迹
  19. python对缩进太敏感...a_a
  20. sql查询连续3天有交易记录的客户

热门文章

  1. C#-求int数组中连续偶数列的个数
  2. 生产环境邮件问题总结
  3. Android Support Annotations
  4. lucene开发序之luke神器
  5. 关于SET ANSI_PADDING的用法
  6. RN Image与ImageBackground
  7. python ping 连接_Python检查ping终端的方法
  8. AI 是否会取代计算机程序员
  9. 股票历史信息怎么看?
  10. 最惊艳你的短句是什么?