Maven私服仓库:搭建,创建,上传,引用

1.Maven私服仓库原理

Maven私服如果没有对应的jar包,手动导入本地仓库或者私服中

企业级私服不允许外网访问,只运行内网进行访问

Maven私服应用场景

  • 缓存企业级jar
  • 微服务开发中,对微服务接口实现发布与调用
  • 正常在微服务开发中不会直接引用接口源码项目,一般是引用接口jar包进行调用

为什么要在微服务项目中使用Maven私服:在微服务架构中采用的是分布式开发模式,生产者将服务接口发布到Maven私服仓库上,消费者 直接从Maven私服仓库中下载对应的服务接口即可,实现微服务中的消费者与生产者的通讯。

 

2.Maven私服仓库搭建

//查看当前系统内核版本,docker要求是高于3.10
Uname -r 
//更新yum包到最新
Sudo yum update
//安装需要的软件包 yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
//设置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
//可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
//安装docker #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版18.03.1
sudo yum install docker-ce  
sudo yum install  docker-ce-18.03.1.ce
//启动并加入开机启动
sudo systemctl start docker
sudo systemctl enable docker
//验证安装docker是否成功
docker version
cd ..
ls
//下载一个nexus3的镜像
docker pull sonatype/nexus3
//将容器内部/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
//查看启动是否成功
docker ps

安装过程没有问题,但是启动发现访问不了服务器IP:8081,去检查发现是内存溢出,即内存不够,这个在这篇文章的第五点中详细描述了https://blog.csdn.net/sunhuansheng/article/details/101651812

启动正常的如下

访问Maven私服仓库:http://111.230.199.185:8081

Maven私服仓库默认用户账号: admin admin123,这个地方是一个坑,在2019年的时候这个已经改掉了,默认用户还是admin,默认密码已经不是admin123了,需要去服务器的安装目录下找这个密码:

//查看docker
docker ps
//进入docker
docker exec -it 0ad864bdf5cf bash
//进入admin.password的目录,这个仅仅知道是在/opt/sonatype/sonatype-work/,其他靠ls来找目录
cd /opt/sonatype/sonatype-work/nexus3/
//查看密码admin.password
vim admin.password

进入/opt/sonatype/sonatype-work/nexus3/admin.password,复制里面的密码进行登录,成功。

 

3.创建Maven私服仓库

创建私服仓库

创建仓库,点击Create repository,然后选择maven2(hosted)然后输入仓库名称(test-release)。在version policy中选择这个仓库的类型,这里选择release,在Deployment policy中选择Allow redeploy(这个很重要).

创建私服账号

点击左侧菜单栏的Users菜单,然后点击Create local user.我这里创建了一个用户,账号密码是:sunny sun1990

本地settings.xml

点击IDEA,File->Settings->Build,Execution...->Bulid Tools-->Maven,找到Setting.xml文件的路径C:\Users\sunny\.m2\settings.xml并打开,这个路径是一般新建项目的Maven的配置路径,即用户安装路径

将Settings.xml中的Servers改成,里面的内容是Maven私服仓库的登录账户信息

  <servers>
    <server>
      <id>dhcc</id>
      <username>sunny</username>
      <password>sun1990</password>
    </server>
  </servers>

Maven的配置文件Settings.xml还有一个路径,C:\maven\apache-maven-3.5.4\conf\settings.xml,这个是Maven安装路径

如果两个settings.xml都存在的时候,以第一个为准,但是一般都不会启动第一个settings.xml.

 

获取Maven私服仓库地址 http://111.230.199.185:8081/repository/test-release/

 

4.上传jar包到Maven私服仓库

在maven工程的pom中添加如下配置

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

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

            <!--发布代码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>

在项目对应的Terminal窗口中运行:

mvn deploy

运行成功后如下:

到Maven私服仓库中进行 查看和下载

 

5.调用Maven私服仓库中的jar包

 <!-- 依赖 spring-boot-blog -->
        <dependency>
            <groupId>com.hpm.blog</groupId>
            <artifactId>spring-boot-blog</artifactId>
            <version>0.0.1</version>
        </dependency>

 <!--资源路径-->
        <repository>
            <id>dhcc</id>
            <url>http://111.230.199.185:8081/repository/test-release/</url>
        </repository>

 

引入之前先删掉缓存

C:\maven\MavenRepository\maven_jar\com\hpm\blog\spring-boot-blog

引入之后

 

6.验证文件是否相同,比较hash值即可,防止篡改

 

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值