Maven私服

Maven私服

  • 定义

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

  • 概念

    1. 本地仓库:apache-maven,配置在idea中的maven的repository

    2. maven工程:带有pom文件的工程

    3. 远程仓库:maven-apache的默认仓库

    4. maven私服:阿里巴巴的maven镜像、码云的鏡像等等

  • 流程

    一般流程:maven工程需要架包,通过maven坐标(groupId、artifactId和version),首先回去本地仓库,如果没有,再去私服仓库,如果私服仓库没有,在到远程仓库下载,下载的架包,现在私服保存,在到本地仓库缓存。

  • 应用场景

    1. 公司开发没有外网,私服有外网
    2. 在微服务开发中,实现对微服务接口实现发布与调用,一般不会引入其他项目的源码。
    3. 公司有自己开发的架包,不对外开放,但是架包被其他人引用,用网络或者U盘传输不安全同时也比较麻烦。
  • 优点

    1. 节省自己的外网带宽
    2. 加速Maven构建
    3. 部署自己内部的第三方构件
    4. 提高稳定性,增强控制
    5. 降低中央仓库的负荷。
  • Maven私服搭建

    • docker安裝
    1. 下载一个nexus3的镜像

      docker pull sonatype/nexus3

    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

    3. 关闭防火墙,访问http://ip:8081(Maven私服启动容器稍微比较慢,等待1分钟即可。)

    4. 默认登陆账号 admin admin123

    5. 创建用户、配置用户权限(对私服的操作)、私服仓库,将maven、阿里云的镜像和新建的私仓库给新建的用户

  • 架包上传

    1. 配置settings.xml

       <server>
        <id>私服Name</id>
      <username>用户名称</username>
        <password>用户密码</password>
      </server>
      
      
      
    2. pom文件配置

         <!--指定仓库地址 -->
      	<distributionManagement>
      		<repository>
      			<!--此名称要和.m2/settings.xml中设置的ID一致 -->
      			<id>私服Name</id>
      			<url>私服仓库地址</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>
      
    3. 发布

      在mvn deploy的时候,根据snapshot和release的规则,判断版本号后面是否带有-SNAPSHOT,带有则认为是快照版本,会发布到snapshot库,不带则认为是发布版本,会发布到release库中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值