美文网首页
08.Docker安装nexus

08.Docker安装nexus

作者: 吕小凯 | 来源:发表于2020-04-22 12:54 被阅读0次

    1.拉取镜像

    docker pull sonatype/nexus3

    2.创建容器卷并给予权限

    mkdir /usr/local/docker/nexus/nexus-data -p && chmod 777 /usr/local/docker/nexus/nexus-data

    3.启动容器

    docker run -d -p 8081:8081 --name nexus -v /usr/local/docker/nexus/nexus-data:/nexus-data sonatype/nexus3

    4.测试访问nexus

    1、打开浏览器,访问 http://<host address>:8081/
    2、管理员登录密码在 /usr/local/docker/nexus/nexus-data 中admin开头的文件中,将其拷贝输入即可。
    3、登录之后会要求修改密码,按要求修改即可。

    5.项目发布到nexus的仓库

    1、首先修改maven的setting.xml文件,添加用户信息,以便jar包上传私服时进行身份认证,修改内容如下:
    <servers>
        <server>
              <id>maven-releases</id>
              <username>admin</username>
              <password>123456</password>
        </server>
        <server>
          <id>maven-snapshots</id>
          <username>admin</username>
          <password>123456</password>
        </server>
    </servers>
    

    id : 为nexus的仓库名称,
    username : nexus用户名
    password : nexus密码

    2、创建maven项目,修改pom.xml

    增加发布管理节点

    <distributionManagement>
            <snapshotRepository>
                <id>maven-snapshots</id>
                <name>maven-snapshots-repository</name>
                <url>http://192.168.172.141:8081/repository/maven-snapshots/</url>
            </snapshotRepository>
            <repository>
                <id>maven-releases</id>
                <name>maven-releases-repository</name>
                <url>http://192.168.172.141:8081/repository/maven-releases/</url>
            </repository>
        </distributionManagement>
    

    snapshotRepository : 快照仓库
    repository : 发行仓库
    id : 与上面的server的id一致
    name : 随便
    url : 仓库地址,从nexus中可以找到

    3.项目打包发布

    maven会根据<version/>中是否含有SANPSHOT来选择是发布到快照仓库,还是发行版仓库

    项目打包
    mvn clean package -Dmaven.test.skip=true
    项目发布
    mvn deploy
    

    运行完便可在nexus中看到自己的项目了

    4.jar包安装到nexus私服

    有时项目开发时,一些maven依赖下载不下来,一直报错。这时,可以手动下载jar包,将其安装到nexus私服,再从nexus解决依赖问题。下面以安装kaptcha为例:
    mvn deploy:deploy-file -DgroupId=com.google.code.kaptcha -DartifactId=kaptcha -Dversion=2.3 -Dpackaging=jar -Dfile=D:\kaptcha-2.3.2.jar -Durl=http://192.168.172.141:8081/repository/third/ -DrepositoryId=third

    DgroupId : jar包的groupId
    Dversion : jar包的版本
    Dfile : jar包所在位置
    Durl : 仓库地址
    DrepositoryId : 仓库名

    这里新建了名为third的第三方仓库,注意要在setting.xml增加一个server节点,配置用户名和密码。同时要将third仓库加到maven-public组中,因为第十步要依赖的是maven-public组。将 third加入maven-pulic组后,只要依赖maven-public,便可取到third中的jar包。

    5.从nexus下载依赖

    在pom.xml中增加如下仓库配置:

    <repositories>
            <repository>
                <id>nexus</id>
                <name>Nexus Repository</name>
                <url>http://192.168.172.141:8081/repository/maven-public/</url>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
                <releases>
                    <enabled>true</enabled>
                </releases>
            </repository>
        </repositories>
        <pluginRepositories>
            <pluginRepository>
                <id>nexus</id>
                <name>Nexus Plugin Repository</name>
                <url>http://192.168.172.141:8081/repository/maven-public/</url>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
                <releases>
                    <enabled>true</enabled>
                </releases>
            </pluginRepository>
        </pluginRepositories>
    

    上面的url节点填写的都是maven-public组的url,而maven-releases,maven-snapshots,third都包含在maven-public中,所以能取到三个仓库的内容

    相关文章

      网友评论

          本文标题:08.Docker安装nexus

          本文链接:https://www.haomeiwen.com/subject/flgoihtx.html