• 在ubuntu上搭建nexus私有仓库[失败草稿]


    前言

    嗯,在内网开发项目时候有需要搭建一个自己的私服maven仓库,下面就说明一下整个步骤。

    注意,6年前博主已经写了相关文章了,
    微服务架构【技术点2】— centos+nexus搭建maven私服+idea联合发布使用

    这一篇文章就作为更新以及补充说明吧。

    在官网下载 neuxs:

    wget https://sonatype-download.global.ssl.fastly.net/repository/downloads-prod-group/3/nexus-3.67.1-01-unix.tar.gz
    
    • 1

    我本地下载速度有点慢,看来需要一些科技手段了。

    下载完成后,请上传到服务器等待配置:
    在这里插入图片描述

    在服务器上面,解压缩:

    tar -zxvf nexus-3.67.1-01-unix.tar.gz
    ls 
    
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    ------重命名nexus文件夹
    
    mv nexus-3.67.1-01 /usr/local/nexus3
    cd /usr/local
    创建软连接
    sudo ln -s nexus3 nexus
    mkdir /usr/local/sonatype-work/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    好了,先进行一部分配置:

    vim bin/nexus.vmoptions
    修改一下参数,防止占用内存过大。
    如下图:
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    可以改小一点:
    在这里插入图片描述

    修改默认访问端口以及根目录:

    vim etc/nexus-default.properties 
    
    • 1

    在这里插入图片描述

    注意,默认端口8081很多人用的,使用前请检查一下是否已经占用了:

    lsof -i:8081
    
    • 1

    给nexus分配账号:
    ps:如果不分配账号那么是无法启动的,例如:
    在这里插入图片描述

    创建 nexus 用户
    # sudo useradd nexus -M -s /sbin/nologin
    注意,这条命令后续会出问题的,在我上一篇文章已经将坑都排出来了:
    https://blog.csdn.net/cdnight/article/details/80673110
    所以,正式的命令是新建普通的账号:
    sudo useradd nexus -m -s /bin/bash
    授权
    chown -R nexus:nexus /usr/local/nexus
    chown -R nexus:nexus /usr/local/sonatype-work/
    
    打开 /usr/local/nexus/bin/nexus.rc 文件, 去掉 run_as_user 变量的注释
    sudo vim /usr/local/nexus/bin/nexus.rc
    run_as_user="nexus"
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    好了,测试一下能否正常运行:

    /usr/local/nexus/bin/nexus run
    
    • 1

    结果:
    在这里插入图片描述

    这怕不是jdk版本的问题了。。。

    经过简单排查,终于发现出问题的地方:
    在这里插入图片描述

    在这里插入图片描述
    可以得知,在INSTALL4J_ADD_VM_PARAMS 里面有:-Djava.endorsed.dirs=lib/endorsed
    这个恰好是报错的点。
    然后逐步排查,变量最开始 的变量vmoptions_val,值为:

     -Xms512m -Xmx512m -XX:MaxDirectMemorySize=512m -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=../sonatype-work/nexus3/log/jvm.log -XX:-OmitStackTraceInFastThrow -Djava.net.preferIPv4Stack=true -Dkaraf.home=. -Dkaraf.base=. -Dkaraf.etc=etc/karaf -Djava.util.logging.config.file=etc/karaf/java.util.logging.properties -Dkaraf.data=../sonatype-work/nexus3 -Dkaraf.log=../sonatype-work/nexus3/log -Djava.io.tmpdir=../sonatype-work/nexus3/tmp -Dkaraf.startLocalConsole=false -Djdk.tls.ephemeralDHKeySize=2048 -Djava.endorsed.dirs=lib/endorsed
    
    • 1

    最后,从nexus脚本的排查结果是:
    在这里插入图片描述

    再查看一下bin/nexus.vmoptions的内容,有:
    顺便改改 内存占用:
    在这里插入图片描述
    原来已经说明。。注释部分的在java9+的时候要取消注释,好,改改:

    ps2:
    有多个jdk的机器需要注意下,
    nexus里面有判断jdk的,其中最后会出现:
    “$app_java_home/bin/java”
    这种形式执行命令–但是app_java_home到底是哪一个jdk我也不清楚–所以我直接都换成 默认的那一个。
    在这里插入图片描述
    怎么做都不行,下面参考一下一位兄弟的文章:
    解决Nexus 3.XX Jdk版本问题(亲测有效)

    所以,nexus的新版本是真的坑人!!!!

    好了,给nexus添加一下系统服务,方便开机启动。

    nexus.service
    放在:
    /lib/systemd/system
    目录下,内容:

    [Unit]
    Description=Nexus3服务
    After=network.target
    
    [Service]
    Type=forking
    ExecStart=/usr/local/nexus/bin/nexus start
    ## ExecReload=/usr/local/@projectName@/service.sh restart
    ExecStop=/usr/local/nexus/bin/nexus stop
    PrivateTmp=True
    [Install]
    WantedBy=multiVersions-user.target
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    C语言入门(五)分支结构
    word目录怎么自动生成?用这个方法,快速自动生成
    AtCoder abc148
    MySQL 索引
    如何安全地访问互联网
    五、数据库连接池解析与编写 —— TinyWebServer
    使用CompletableFuture多线程异步任务优化查询接口性能
    Mysql词法分析实验(一)
    Idea 启动报错 failed to create jvm:jvm path url
    智能配电系统解决方案
  • 原文地址:https://blog.csdn.net/cdnight/article/details/138160508