使用树莓派搭建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. Android中如何使用多选对话框

    final String [] ss={"A","B","C","D","E"}; boolean ...

  2. python numpy 库

    引用文章:https://blog.csdn.net/xjl271314/article/details/80409034

  3. Debian安装NVIDIA显卡驱动

    1. sudo apt-get install nvidia-detect nvidia-detect 输出信息: Detected NVIDIA GPUs: 01:00.0 VGA compatib ...

  4. 君荣一卡通软件mysql转sqlserver 教程

    Mysql数据库转sql数据库方法 注意:新建的SQL数据库一得先登录一次后再做迁移!!!!特别注意 如果客户以前安装的是mysql数据库,现在希望把mysql数据库转换的sql数据库,方法如下: 1 ...

  5. git clone 时注意点

    环境: 在公司访问外网需要设置代理,另外,在公司局域网内架设了一台 GIT 服务器. 在使用 git clone 时,不能设置成 git 使用代理: git config --global http. ...

  6. 让LED程序在片外SDRAM中运行

    让LED程序在片外SDRAM中运行 一.引子 在前一篇文章中,我们已经成功点亮过LED了,为什么还要再重复一次呢? 我们已经知道,Mini2440开发板有两种启动模式:从NorFlash启动和从Nan ...

  7. C# Winform界面不能适配高DPI的解决方法

    1. 将 Form 的 AutoScaleMode 属性设置为 DPI: 2. 在Program.cs中修改代码 class Program { [STAThread] static void Mai ...

  8. 深度解密 Go 语言之 sync.map

    工作中,经常会碰到并发读写 map 而造成 panic 的情况,为什么在并发读写的时候,会 panic 呢?因为在并发读写的情况下,map 里的数据会被写乱,之后就是 Garbage in, garb ...

  9. 04 . Jenkins定制主题和设置项目构建信息输出颜色

    Jenkins thems自动生成定制主题css Jenkins默认界面比较丑,视觉容易疲劳,这时候就需要我们更换一个主题,让我们的Jenkins美观一些. 以下是css主题的地址 http://af ...

  10. Spring中基于xml的AOP

    1.Aop 全程是Aspect Oriented Programming 即面向切面编程,通过预编译方式和运行期动态代理实现程序功能的同一维护的一种技术.Aop是oop的延续,是软件开发中的 一个热点 ...