• 树莓派搭建Nexus2私服


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

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

    树莓派相关文章:

    1. 树莓派搭建nexus2.x私服(本文)
    2. 树莓派搭建视频监控平台
    3. 树莓派视频监控平台实现录制归档
    4. 树莓派实现人脸打卡机

    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的迁移好方便好多。

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

  • 相关阅读:
    LeetCode206翻转链表问题,多解法求解
    使用GCC编译c源程序经历的几个步骤
    部分内置函数(不含面向对象型)
    Python初学1
    函数的作用域与匿名函数
    生成器函数以及生产消费模型
    【VC编译错误】error C2872: 'ofstream' : ambiguous symbol
    【C开发】无限循环 while(1) 和 for(; ;)
    【C开发】预编译处理命令(#define、typedef、#include、#运算符)
    编译DLL出现无法解析的外部符号
  • 原文地址:https://www.cnblogs.com/itqn/p/raspi_nexus2.html
Copyright © 2020-2023  润新知