08.Docker安装nexus

2020-04-22  本文已影响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中,所以能取到三个仓库的内容

上一篇下一篇

猜你喜欢

热点阅读