树莓派搭建Nexus2私服
使用树莓派搭建Nexus2私服需要的材料有:
- 树莓派3B+(或者4B)
- 移动硬盘一个
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中。
- 将依赖工作目录的
storage/central中。 - 登录nexus2.x的管理界面,在 Repositories-> central 中右键 reindex 一次。
这样当我们拉取依赖的时候,central已经有的依赖就不用再到maven中央仓库去拉取了,没有的情况下nexus2才先到maven中央仓库拉取。
当然,如果是私服迁移的话,只需将源私服的storage下面的仓库备份到新私服上,执行reindex即可,这比nexus3.x的迁移好方便好多。

关注公众号,阅读更多关于nexus2.x的文章。(如:nexus搭建npm仓库,nexus权限管理,maven仓库的使用等将持续更新...)
树莓派搭建Nexus2私服的更多相关文章
- 用nexus搭建maven私服
首先介绍一下背景,公司访问外网有限制,项目组大部分人员不能访问maven的central repository,因此在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上 环 ...
- 搭建Maven私服
最近从SVN下载的代码,在本地构建时出现了诸多问题,部分依赖下载超时,就想起在局域网搭建Maven私服,废话不说了,在测试服务器上建的已经成功,就随便找台机子再练习一遍顺道写个日志.1.前往http: ...
- Maven学习 (四) 使用Nexus搭建Maven私服
为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到 ...
- Maven-004-使用 Nexus 搭建 maven 私服
从去年至今,自己一直在学习自动化测试工具,想利用自动化工具尽可能的将重复的.关键的.耗时耗力的工作实现自动化,减轻日常测试工作,提升测试效率.在学习的过程中,将 maven 作为了项目开发管理工具,进 ...
- Maven学习总结(九)——使用Nexus搭建Maven私服
一.搭建nexus私服的目的 为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建n ...
- Ubuntu server下搭建Maven私服Nexus
Ubuntu server下搭建Maven私服Nexus Maven私服Nexus的作用,主要是为了节省资源,在内部作为maven开发资源共享服务器来使用. 1.下载 通过root用户进去Ubuntu ...
- Linux_Centos中搭建nexus私服
1.在Linux下搭建Nexus私服 1).下载并且解压 下载 nexus-2.11.2-03-bundle.zip unzip nexus-2.11.2-03-bundle.z ...
- Maven使用笔记(五)Sonatype Nexus 搭建Maven 私服
1. 为什么使用Nexus 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地, 而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载 ...
- Maven——使用Nexus搭建Maven私服
原文:http://www.cnblogs.com/xdp-gacl/p/4068967.html Maven学习总结(九)--使用Nexus搭建Maven私服 一.搭建nexus私服的目的 为什么要 ...
随机推荐
- Java GUI 键盘事件
import java.awt.FlowLayout; import java.awt.Frame; import java.awt.TextField; import java.awt.event. ...
- java实现第七届蓝桥杯路径之谜
路径之谜 题目描述 小明冒充X星球的骑士,进入了一个奇怪的城堡. 城堡里边什么都没有,只有方形石头铺成的地面. 假设城堡地面是 n x n 个方格.[如图1.png]所示. 按习俗,骑士要从西北角走到 ...
- PAT 换个格式输出整数
让我们用字母 B 来表示“百”.字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n,换个格式来输出任一个不超过 3 位的正整数.例如 234 应该被输出为BBSSS1234,因为它有 ...
- 终于我用JOL打破了你对java对象的所有想象
目录 简介 JOL简介 使用JOL分析VM信息 使用JOL分析String 使用JOL分析数组 使用JOL分析自动装箱 使用JOL分析引用关系 总结 简介 使用面向对象的编程语言的好处就是,虽然没有女 ...
- Burpsuite intruder模块 越过token进行爆破,包含靶场搭建
安装靶场 链接:https://pan.baidu.com/s/19X0oC63oO2cQKK6UL5xgOw 提取码:yq7f 下载完成放入网站根目录 点击初始化安装 出现错误,进行跟踪 发现是数据 ...
- iOS-Code Data的快速体验
Code Data Core Data 是iOS SDK 里的一个很强大的框架,允许程序员以面向对象的方式储存和管理数据.使用Core Data框架,程序员可以很轻松有效地通过面向对象的接口管理数据 ...
- 没了IDE,你的Java项目还能Run起来吗~
计算机只能识别机器码0101...编程语言->能执行的机器码 需要经过 预处理->编译->汇编->链接->机器码过程.一个语言处理系统的示意图如下: 编译器 是将源语言程 ...
- public、potected 、private继承下的子类对父类成员的访问情况
#include<iostream> #include<string> using namespace std; class parent{ protected: int m_ ...
- Dedecms中{dede:type}标签支持调用父级栏目名称
需求: 我们用{dede:type}标签调用栏目相关内容时,同时需要调用该栏目的父级栏目的名称. {dede:type}标签的代码做了一下开发,支持这个调用了. 开发方法: 1.打开include/t ...
- 电脑中找不到.ssh文件的解决办法
打开GIT bash写上命令:1.git config --global user.name “XXX”xxx代表你的用户名 2.git config --global user.email &quo ...