• 九、微服务学习笔记-docker compose 部署Nexus


    一、什么是Nexus

    Nexus是一个强大的Maven仓库管理器,极大简化了内部仓库的维护和外部仓库的访问。

    1、对底层代码进行了大规模重构,提升性能,增加可扩展性以及改善用户体验。

    2、升级界面,极大的简化了用户界面的操作和管理。

    3、提供新的安装包,让部署更加简单

    4、增加对Docker、NeGet、npm、Bower的支持。

    5、提供新的管理接口,以及增强对自动任务的管理

    二、部署Nexus

    官方教程文档:https://hub.docker.com/r/sonatype/nexus3

    部署命令如下:

    #拉取镜像
    docker pull sonatype/nexus3

    #cd local目录下,并创建docker,在docker目录下创建nexus
    cd /usr/local/
    mkdir docker
    mkdir nexus

    #编辑docker-compose.yml
    vi docker-compose.yml
    #启动
    docker-compose up -d

    docker-compose.yml配置文件内容如下:

    version: '3.1'
    services:
      nexus:
        restart: always
        image: sonatype/nexus3
        container_name: nexus
        ports:
          - 8082:8081
        volumes:
          - nexus-data:/nexus-data
    volumes:
      nexus-data:

    三、访问Nexus

    四、Nexus配置和使用

    官方文档:https://help.sonatype.com/repomanager3/formats/maven-repositories#MavenRepositories-ConfiguringGradle

    mvn仓库配置:

    <distributionManagement>
            <repository>
                <id>nexus-releases</id>
                <name>Nexus Releases Repository</name>
                <url>http://192.168.121.131:8082/repository/maven-releases/</url>
            </repository>
            <snapshotRepository>
                <id>nexus-snapshots</id>
                <name>Nexus Snapshot Repository</name>
                <url>http://192.168.121.131:8082/repository/maven-snapshots/</url>
            </snapshotRepository>
        </distributionManagement>
        <repositories>
            <repository>
                <id>nexus</id>
                <name>Nexus Repository</name>
                <url>http://192.168.121.131:8082/repository/maven-public/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </repository>
        </repositories>
        <pluginRepositories>
            <pluginRepository>
                <id>nexus</id>
                <name>Nexus Plugin Repository</name>
                <url>http://192.168.121.131:8082/repository/maven-public/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </pluginRepository>
        </pluginRepositories>

    maven setting认证配置:(只需要配置账号密码,请求地址是在pom里面)

    <server>
          <id>nexus-releases</id>
          <username>admin</username>
          <password>admin123</password>
    </server>
    <server>
          <id>nexus-snapshots</id>
          <username>admin</username>
          <password>admin123</password>
     </server>

     上传命令:

    mvn deploy -Dmaven.test.skip=true

    五、遇到问题

    1、提示没有文件夹权限

    2、账号密码错误,不是默认admin123

    (1)通过docker ps命令获取容器id,

    (2)docker exec -it 容器ID  /bin/bash 命令进入容器

    (3)vi /nexus-data/admin.password 查看密码(就是密码不是加密串)

    3、打包上传mvn时,出现异常

     分析问题:

    1、防火墙导致访问失败

    通过telnet,可以排除

    2、认证出现异常

    查看账号的ID是否跟仓库的ID一致

    解决方式:maven setting中的账号ID和pom文件中的ID不一致导致的,修改后成功运行

    MAVEN-central  中央仓库(没有会去官网仓库获取包)
    MAVEN-Public  公共仓库 组(包含其他仓库)

    MAVEN-RELEASES  发行

    MAVEN-SNAPSHOTS  快照(开发版)

    面向修改关闭,面向扩展开发

    语义化版本 V1.0.0(架构、功能、bug数)外部版本号

  • 相关阅读:
    ASP.NET MVC基于标注特性的Model验证:DataAnnotationsModelValidator
    TDD个人实践体会
    客户端调用Spring.Net发布的WebService
    XML自动解析器开源
    Javascript MVVM模式前端框架—Knockout 2.1.0系列
    定时执行SQL存储过程
    orchard之lucene.net索引生成
    并发编程学习总结
    python开发总结
    Thrift
  • 原文地址:https://www.cnblogs.com/myLeisureTime/p/13494565.html
Copyright © 2020-2023  润新知