Mr. Cappuccino的第4杯咖啡——基于Docker搭建Maven私服

1.什么是Maven私服?

Maven私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的用户使用。当Maven需要下载构件的时候,它从私服请求,如果 私服上不存在该构件,则从外部远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。
在这里插入图片描述

2.Maven私服的作用

  • 节省外网带宽
  • 加速Maven构建
  • 部署第三方构件
  • 提高稳定性,增强控制
  • 降低中央仓库的负荷。

3.Maven私服的使用场景

  • 缓存企业级内部使用的jar包
  • 实现微服务接口rpc远程调用开发

4.基于Docker搭建Maven私服

4.1.下载nexus3镜像
docker pull sonatype/nexus3

在这里插入图片描述

4.2.将容器内部/var/nexus-data挂载到主机/root/nexus-data目录。
docker run -d -p 8081:8081 --name nexus -v /root/nexus-data:/var/nexus-data --restart=always sonatype/nexus3

在这里插入图片描述

4.3.查看正在运行的容器的日志

使用docker ps命令查看正在运行的容器,并使用docker attach 容器id命令查看正在运行的容器的日志

docker ps
docker attach 容器id

在这里插入图片描述

注意:docker attach [options]命令在使用Ctrl+C退出容器时,还会将容器停止运行,如果希望退出容器时不停止运行则需要加上–sig-proxy这个参数

docker attach --sig-proxy=false 容器id
4.4.关闭防火墙
systemctl disable firewalld

在这里插入图片描述

4.5.访问Maven私服主页

到这里说明Maven私服已经启动成功啦
在这里插入图片描述

4.6.查看Maven私服默认的账号密码
docker ps
docker exec -it 容器id bash
cat /nexus-data/admin.password

在这里插入图片描述

4.7.登录Maven私服(默认账号为admin)

在这里插入图片描述

4.8.设置新的密码

在这里插入图片描述

5.往Maven仓库上传Jar包

5.1.创建新用户

在这里插入图片描述

5.2.登录新用户的账号

在这里插入图片描述

5.3.创建Maven仓库

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

5.4.更改本地Maven中的settings.xml文件(添加用户账号配置)
<servers>
	<server>
      <id>honey</id>
      <username>honey</username>
      <password>honey</password>
    </server>
</servers>

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

5.5.创建一个Maven项目
	<groupId>com</groupId>
    <artifactId>maven-project</artifactId>
    <version>1.0-RELEASE</version>

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

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

5.6.发布Jar包

进入命令窗口,跳转至项目地址,使用mvn deploy命令进行发布
在这里插入图片描述
在这里插入图片描述
发布成功后前往Maven私服页面查看Jar包是否存在
在这里插入图片描述

5.7.更改版本号重新发布

在这里插入图片描述
现在可以看到Maven仓库中已经存在两个不同版本啦
在这里插入图片描述

6.从Maven仓库下载Jar包

6.1.另外创建一个项目
	<groupId>com</groupId>
    <artifactId>maven-project-download</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>com</groupId>
            <artifactId>maven-project</artifactId>
            <version>2.0-RELEASE</version>
        </dependency>
    </dependencies>
    
	<repositories>
		<repository>
			<id>honey</id>
			<url>http://192.168.102.149:8081/repository/honey-release/</url>
		</repository>
	</repositories>

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

6.2.删除本地Jar包

把Maven坐标引入进来时,我们可以发现,本地Maven仓库中已经存在了该Jar包,为了测试是否可以下载Jar包,我们应该把本地Maven仓库中的Jar包删除,重新下载
在这里插入图片描述
删除Jar包后,项目已经找不到该Jar包了
在这里插入图片描述

6.3.下载Jar包

在这里插入图片描述
查看本地Maven仓库,Jar包已经成功下载啦
在这里插入图片描述

7.测试Jar包是否可以使用

7.1.在发布Jar包的Maven工程中创建一个类,然后重新发布
package com;

/**
 * @ClassName Test
 * @Description
 * @Author honey-袁小康
 * @Date 2021/1/27 23:38
 * @Version 1.0
 */
public class Test {

    public void test() {
        System.out.println("调用方法");
    }
}

在这里插入图片描述

7.2.在下载Jar包的Maven工程中创建一个类,实现调用
package com;

/**
 * @ClassName CallTest
 * @Description
 * @Author honey-袁小康
 * @Date 2021/1/28 0:09
 * @Version 1.0
 */
public class CallTest {

    public static void main(String[] args) {
        Test test = new Test();
        test.test();
    }
}

在这里插入图片描述

7.3.运行CallTest类

注意:运行CallTest类后,发现控制台输出的中文是乱码的,遇到这个问题首先就可以考虑是不是发布Jar包的编码格式存在问题。
在这里插入图片描述
查看发布Jar包时的日志:Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
在这里插入图片描述

7.4.解决中文乱码的问题

在发布Jar包的Maven工程中,更改pom.xml文件(添加发布插件,并设置编译格式为UTF-8)

	<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.0.2</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

在这里插入图片描述

7.5.重新发布Jar包

使用mvn clean deploy命令重新发布Jar包

mvn clean deploy

在这里插入图片描述

7.6.运行CallTest类进行测试调用

现在控制台输入的中文没有出现乱码的问题啦~~
在这里插入图片描述

Maven私服的搭建到此结束啦~~~

莫找借口失败,只找理由成功。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值