使用树莓派搭建Nexus2私服需要的材料有:

  1. 树莓派3B+(或者4B)
  2. 移动硬盘一个

1. 下载nexus2.x安装包

由于nexus2.x官方的启动环境并不支持arm架构的树莓派,所以这里采用tomcat7 + nexus2.x的方式搭建私服。

下载 nexus-2.14.17-01-bundle.tar.gz

下载 apache-tomcat-7.0.104.tar.gz

2. 移除nexus2.x不必要的插件

将下载的nexus-2.14.17-01-bundle.tar.gz解压后,会有如下几个目录:

bin     # nexus各种操作系统的启动脚本,这里并不支持arm架构
nexus # nexus主应用,使用tomcat + nexus,只需要这部分
logs
lib
conf
...

用tomcat7来跑nexus,只需要nexus这个目录中的东西,但是由于树莓派的内存有限,所以这里移除了nexus中没有用到的插件,比如ldap,nuget,yum等。

下面是我们用不到的插件(这个具体根据自己的需要调整),插件的位置在/nexus/WEN-INF/plugin-repository这个目录中。

nexus-analytics-plugin-2.14.17-01
nexus-archetype-plugin-2.14.17-01
nexus-atlas-plugin-2.14.17-01
nexus-capabilities-plugin-2.14.17-01
nexus-crypto-plugin-2.14.17-01
nexus-groovy-plugin-2.14.17-01
nexus-h2-plugin-2.14.17-01
nexus-iq-repository-oss-plugin-2.14.17-01
nexus-kazuki-plugin-2.14.17-01
nexus-ldap-realm-plugin-2.14.17-01
nexus-logging-plugin-2.14.17-01
nexus-lvo-plugin-2.14.17-01
nexus-migrationagent-plugin-2.14.17-01
nexus-nuget-plugin-2.14.17-01
nexus-outreach-plugin-2.14.17-01
nexus-rrb-plugin-2.14.17-01
nexus-ruby-plugin-2.14.17-01
nexus-rutauth-plugin-2.14.17-01
nexus-siesta-plugin-2.14.17-01
nexus-site-repository-plugin-2.14.17-01
nexus-timeline-plugin-2.14.17-01
nexus-wonderland-plugin-2.14.17-01
nexus-yum-repository-plugin-2.14.17-01

3. 修改nexus的工作目录

默认情况下nexus的工作目录为${user.home}/sonatype-work/nexus,由于硬盘是挂载在树莓派的/mnt/Disk目录中,所以这里需要调整一下nexus的工作目录。

修改/nexus/WEB-INF/classes/plexus.properties中的nexus-work配置:

nexus-work=/mnt/Dist/nexus2/sonatype-work/nexus
runtime=${bundleBasedir}
nexus-app=${runtime}

4. 将nexus部署到tomcat中

可以把nexus当做一个普通的java web项目即可,由于资源有限,这里将tomcat默认的项目统统删除掉,即删除tomcat/webapps中的所有目录。

然后将nexus这个目录放到/tomcat/webapps目录下即可,启动tomcat。

cd bin
./startup.sh

5. nexus2.x的storage目录

nexus2.x跟nexus3.x有很大的区别,在存储上nexus2.x采用的是目录结构,而nexus3.x使用的是ElasticSearch,这也是为什么我选用nexus2.x而不是最新的nexus3.x的原因,树莓派的资源根本跑不起ElasticSearch。

下面是nexus2启动后会创建的目录:

backup
conf
db
felix-cache
health-check
indexer
iq
logs
nexus.lock
nuget
orient
plugin-repository
storage
timeline

这里,只需要关注storage这个目录即可,因为私服的所有依赖都存放在这个目录下面,下面是storage的目录结构:

apache-snapshots
central # 仓库迁移位置
central-m1
npm_all
npmjs_my
npmjs_central
public # 依赖发布
releases
snapshots
thirdparty

6. 上传已有的依赖(或依赖迁移)

正常情况下,在我们搭建nexus2.x私服之前,我们本地都会有一个maven本地仓库,我们可以将本地的maven仓库中的依赖FTP传到nexus中。

  1. 将依赖工作目录的storage/central中。
  2. 登录nexus2.x的管理界面,在 Repositories-> central 中右键 reindex 一次。

这样当我们拉取依赖的时候,central已经有的依赖就不用再到maven中央仓库去拉取了,没有的情况下nexus2才先到maven中央仓库拉取。

当然,如果是私服迁移的话,只需将源私服的storage下面的仓库备份到新私服上,执行reindex即可,这比nexus3.x的迁移好方便好多。



关注公众号,阅读更多关于nexus2.x的文章。(如:nexus搭建npm仓库,nexus权限管理,maven仓库的使用等将持续更新...)

树莓派搭建Nexus2私服的更多相关文章

  1. 用nexus搭建maven私服

    首先介绍一下背景,公司访问外网有限制,项目组大部分人员不能访问maven的central repository,因此在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上 环 ...

  2. 搭建Maven私服

    最近从SVN下载的代码,在本地构建时出现了诸多问题,部分依赖下载超时,就想起在局域网搭建Maven私服,废话不说了,在测试服务器上建的已经成功,就随便找台机子再练习一遍顺道写个日志.1.前往http: ...

  3. Maven学习 (四) 使用Nexus搭建Maven私服

    为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到 ...

  4. Maven-004-使用 Nexus 搭建 maven 私服

    从去年至今,自己一直在学习自动化测试工具,想利用自动化工具尽可能的将重复的.关键的.耗时耗力的工作实现自动化,减轻日常测试工作,提升测试效率.在学习的过程中,将 maven 作为了项目开发管理工具,进 ...

  5. Maven学习总结(九)——使用Nexus搭建Maven私服

    一.搭建nexus私服的目的 为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建n ...

  6. Ubuntu server下搭建Maven私服Nexus

    Ubuntu server下搭建Maven私服Nexus Maven私服Nexus的作用,主要是为了节省资源,在内部作为maven开发资源共享服务器来使用. 1.下载 通过root用户进去Ubuntu ...

  7. Linux_Centos中搭建nexus私服

    1.在Linux下搭建Nexus私服 1).下载并且解压      下载  nexus-2.11.2-03-bundle.zip      unzip nexus-2.11.2-03-bundle.z ...

  8. Maven使用笔记(五)Sonatype Nexus 搭建Maven 私服

    1. 为什么使用Nexus 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地, 而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载 ...

  9. Maven——使用Nexus搭建Maven私服

    原文:http://www.cnblogs.com/xdp-gacl/p/4068967.html Maven学习总结(九)--使用Nexus搭建Maven私服 一.搭建nexus私服的目的 为什么要 ...

随机推荐

  1. Charles(青花瓷/花瓶)的基本使用

    前言 Charles 其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的.其次该软件是用 Java 写的,能够在 Windows,Mac,Linux 上使用. ...

  2. 阿里云高级技术专家空见: CDN的数据化之路

    想要实现优质高速的互联网视频服务,一定离不开高质量的内容分发网络服务,就是我们常说的CDN,在10月13日云栖大会视频多媒体分论坛上,阿里云高级技术专家空见为大家讲解了CDN服务过程中,数据处理.安全 ...

  3. php开发环境和框架phalcon的搭建

    0x01 在ubuntu 12.04 上安装lnmp环境. 安装nginx  (Centos install nginx repo  wget http://www.atomicorp.com/ins ...

  4. Spring-AOP之工作实践(一)

    案例一.角色校验 项目中,对某些方法需要用户具备指定角色权限才能执行. /** * 角色校验注解 */ @Retention(RetentionPolicy.RUNTIME) @Target(Elem ...

  5. 重学 Java 设计模式:实战外观模式「基于SpringBoot开发门面模式中间件,统一控制接口白名单场景」

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 你感受到的容易,一定有人为你承担不容易 这句话更像是描述生活的,许许多多的磕磕绊绊总 ...

  6. RabbitMQ是什么

    1.引入MQ 1.1什么是MQ ​ MQ(Message Quene):翻译为 消息队列,通过典型的 生产者 和 消费者 模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息.因为消息的 ...

  7. @atcoder - AGC034F@ RNG and XOR

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个值域在 [0, 2^N) 的随机数生成器,给定参数 A[ ...

  8. excel 如何制作带下拉框的动态折线图表

    首先我们需要有个类似下图产品销量的基础数据表. 首先将光标放入表格中任意位置,然后插入一个不带点标记的折线图,然后将折线的颜色设置为灰色. 第一次设置成灰色后,一定善用f4快捷键进行快速的折线颜色设置 ...

  9. winxp系统连接服务器丢包解决方法

    winxp系统连接服务器丢包解决方法 MFC编写一个打开网页的程序,发生异常没有获取到数据. 分析步骤: 1. 用getLastError()获取到的信息,(2)- 系统找不到指定的文件. 2. 用浏 ...

  10. cb10a_c++_顺序容器的操作3关系运算符

    cb10a_c++_cb09a_c++_顺序容器的操作3 2 顺序容器的操作3 3 关系运算符 4 所有的容器类型都可以使用 5 比较的容器必须具有相同的容器类型,double不能与int作比较 6 ...