# Nexus

66 阅读1分钟

构建镜像服务器

环境说明

  1. Centos 7.6
  2. apache-maven-3.9.6-bin【安装可选】
  3. nexus-3.76.0-03-unix.tar.gz
  4. JDK17

安装maven

  1. 解压文件
tar -zxvf  apache-maven-xxx-bin.tar.gz -C 目标路径
  1. 设定环境变量
vim  /etc/profile 
# set mvn 
export M2_HOME=/opt/maven3
export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin
  1. 验证配置是否正确
mvn --version

安装nexus

  1. 解压文件
tar -zxvf   nexus-3.76.0-03-unix.tar.gz -C 目标路径【/app】
  1. 设定解压后的文件所有者为普通用户
chown -R [user]:[usergroup] /app

  1. 添加启动用户
vim  /app/nexus-3.76.0-03/bin/nexus.rc
  1. 设置系统启动

    • 构建系统启动文件
     /etc/systemd/system/nexus.service
    
    [Unit]
    Description=nexus service
    After=network.target
    
    [Service]
    Type=forking
    ExecStart=/app/nexus-3.76.0-03/bin/nexus start
    ExecStop=/app/nexus-3.76.0-03/bin/nexus stop
    User=nexus
    Restart=on-abort
    
    [Install]
    WantedBy=multi-user.target
    
    • 重载系统配置
    sudo systemctl daemon-reload
    
  2. 启动失败问题分析

    • 问题现象
    启动后,内存占有率100% ,而后服务程序停止
    
    • 原因分析
    # nexus3的启动默认【nexus.vmoptions】
    -Xms2048m  
    -Xmx2048m  
    -XX:MaxDirectMemorySize=2048m
    
    • 解决方案
    # 修改上述内存配置
    -Xms128m  
    -Xmx512m  
    -XX:MaxDirectMemorySize=512m
    
  3. 忘记管理员密码

    • 首先停止nexus 服务
     nexus stop
    
    • 进入OrientDB控制台。
      java -jar ./lib/support/nexus-orient-console.jar
    
    • 连接数据库
    connect plocal:../sonatype-work/nexus3/db/security admin admin
    
    • 更新密码admin123
      update user SET password="$shiro1$SHA-512$1024$NE+wqQq/TmjZMvfI7ENh            /g==$V4yPw8T64UQ6GfJfxYq2hLsVrBY8D1v+bktfOxGdt4b/9BthpWPNUy/CBk6V9iA0nHpzYzJFWO8v/tZFtES8CA==" UPSERT WHERE id="admin"
    
  4. 应用场景- 公共组件作为其它项目依赖

    • 公共组件中POM配置设定
      <distributionManagement>
         <repository>
            <id>nexus-releases</id>
            <url>http://xx.xxx.xxx.xx:8081/repository/maven-releases/</url>
         </repository>
         <snapshotRepository>
            <id>nexus-snapshots</id>
            <url>http://xx.xxx.xxx.xx:8081/repository/maven-snapshots/</url>
         </snapshotRepository>
      </distributionManagement>
    
    • 本地maven setting的设定-配置上述镜像仓库的用户名,密码信息
     <server>
       <id>nexus-releases</id>
       <username>admin</username>
       <password>nexus@123</password>
     </server>
    
      <server>
       <id>nexus-snapshots</id>
       <username>admin</username>
       <password>nexus@123</password>
     </server>