推荐个人Docker文章,讲的非常详细

【玩转Docker容器 1】Dockerd的详解及安装
【玩转Docker容器 2】基于Docker一分钟搭建完 Jdk、Mysql、Nginx、Redis、Tomcat环境
【玩转Docker容器 3】基于Docker部署SpringBoot项目
【玩转Docker容器 4】基于Docker搭建Docker私服,以及如何使用Docker私服详解
【玩转Docker容器 5】基于Docker搭建Maven私服,以及项目如何使用Maven私服详解
【玩转Docker容器 6】基于Docker构建GitLab管理代码
【玩转Docker容器 7】基于Docker安装Jenkins实现自动化构建、部署、测试、监控项目

1.Nexus是什么

Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。我们可以在局域网搭建一个maven私服,用来部署第三方公共构件或者作为远程仓库在该局域网的一个代理。

2.Nexus和Maven私服原理

解释:Nexus就是Maven的私服仓库,一般大一点的公司都已自己的私有Maven库

1、我们从项目实际开发来看一些无法从外部仓库下载的组件(自定义的组件,未开源),例如内部的项目还要用的,这样我们就可以署到私服上,以便供其他依赖项目使用。

2、为了节省带宽和时间,在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库。当本地Maven项目需要下载构件时,先去私服请求,如果私服没有,则再去远程仓库请求,从远程仓库下载构件后,把构件缓存在私服上。这样,及时暂时没有Internet链接,由于私服已经缓存了大量构件,整个项目还是可以正常使用的。同时,也降低了中央仓库的负荷。
在这里插入图片描述

3.什么场景用Maven私服呢?

1.在实际开发中,项目中可能会用到第三方的jar、内部通讯的服务接口都会打入到公司的私服中。

2.自定义的jar包,或者SpringBoot的pom包,一些自己封装好的包打包到私有Maven中去,只供自己或者朋友使用(就比如你封装了个非常强大的代码自动生成器,或者微信和支付宝支付的封装,只需要稍微的配置就可以使用,这时你就可以打包到Maven私服中去,下次直接在pom或xml文件配置坐标就行了,只给自己或者公司或者朋友使用)

4.基于Docker搭建Nexus构建Maven私服

1.下载nexus3的镜像

一定要是搭建了Docker的Linux环境哟,不知道的可以看我之前位置

输入:
docker pull sonatype/nexus3

在这里插入图片描述

2.使用镜像启动一个容器
注:将容器内部/var/nexus-data挂载到主机/root/nexus-data目录(8081:8081是Linux与Docker的端口映射)
docker run -d -p 8081:8081--name nexus -v /root/nexus-data:/var/nexus-data --restart=always sonatype/nexus3 

在这里插入图片描述

3.登录Maven私服

关闭防火墙,访问http://ip:8081
Maven私服启动容器稍微比较慢,等待一会即可。

注:默认账号密码为admin/admin123
在这里插入图片描述

妈耶,进不去,算了改密码吧
在这里插入图片描述

4.修改初始密码,登录Maven私服

用户名或密码不正确,这个时候我们可以去admin.password文件中去看初始密码。

输入:(找到密码文件)
find / -name 'admin.password'

在这里插入图片描述

输入:
cat 输入上面查找的文件位置获取密码

在这里插入图片描述

那一串乱七八糟的就是密码。那他的登陆进去修改密码
再次登录,登录进去后他会默认让你修改用户名密码,注意俩个都是打新密码
在这里插入图片描述
一直下一步就好了

5.创建Maven私服
1.创建Maven总库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击蓝色的创建就ok啦

2.创建Maven存储库

点击设置界面,选择Repositories,点击Create repository,如下图所示:
在这里插入图片描述
选择仓库类型,这里Maven有三种类型,分别是group、hosted、proxy。这里只演示hosted类型,所以选择Maven(hosted),如下图:
在这里插入图片描述
这里的仓库选择正确哟
在这里插入图片描述
输入了name,选择好了Storage,后移到底下选择创建
在这里插入图片描述
出现如图
在这里插入图片描述
已成功,忽略地下的docker为什么很慢的不一样,docker是之前创建的

6.Java项目构建jar包上传至Maven私服
1.修改本地settings.xml

使用idea找到settings.xml
在这里插入图片描述
在这里插入图片描述

2.将其打开找到的setting.xml

在这里插入图片描述
在server标签里面加上你登录maven私服的用户名密码
有可能这个文件会有很多注释,忽略就好了,我截的屏没有
在这里插入图片描述

3.配置项目的pom文件

在pom里面添加
在这里插入图片描述

<!--注意限定版本一定为RELEASE,因为上传的对应仓库的存储类型为RELEASE -->
    <!--指定仓库地址 -->
    <distributionManagement>
        <repository>
            <!--此名称要和.m2/settings.xml中设置的ID一致 -->
            <id>boot-tool</id>
            <!--上传的位置-->
            <url>http://120.77.0.58:8081/repository/boot-tool/</url>
        </repository>
    </distributionManagement>

    <build>
        <plugins>
            <!--发布代码Jar插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>2.7</version>
            </plugin>
            <!--发布源码插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.2.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

上传的位置记得要改,改成私有maven仓库的位置
私有仓库位置在:

在这里插入图片描述
在这里插入图片描述

4.打包上传

在ider底下点击Terminai

输入:mvn deploy
在这里插入图片描述

等待一会就上传成功了
在这里插入图片描述
网页访问自己的上传位置看看
在这里插入图片描述
在这里插入图片描述
已成功
在这里插入图片描述

7.测试从Maven私服使用jar包

如何引用呢,我这里创建了一个空的Maven项目

对比一下俩张图,只需在pom文件类要把name,id,版本对应,在引用远程仓库地址即可使用
在这里插入图片描述
在这里插入图片描述
代码

    <dependencies>
        <dependency>
            <groupId>com.lijie</groupId>
            <artifactId>lijie-core-boot</artifactId>
            <version>2.0</version>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>mayikt</id>
            <url>http://120.77.0.58:8081/repository/boot-tool/</url>
        </repository>
    </repositories>

这就是我引入的jar包
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐