1、前置

1、近期因为做一个项目, 要用到私服, 准备自己搭建一个, 但是又懒了一波, 就直接在阿里云的云效创建了一个 (因为我需求量不大, 刚好阿里免费提供使用, 蛮好的, 如果需求量大, 还是看好对应的收费规则), 我还不用服务器, 何乐而不为

2、当然也可以通过nexus搭建maven私服:
      建议直接通过docker进行部署(简单快捷):  https://hub.docker.com/r/sonatype/nexus3

2、介绍云效

在这里插入图片描述
点击免费使用在这里插入图片描述
前面要创建企业
在这里插入图片描述
上传文件
在这里插入图片描述
这里有对应的教程, 我就不废话了在这里插入图片描述

3、我的settings.xml

用户名密码, 以及远程仓库地址记得进行修改, 修改前先备份

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <!-- 该值表示构建系统本地仓库的路径 -->
  <localRepository>E:\MAVEN-repositroy</localRepository> 

  <!-- 在pluginGroups元素下面可以定义一系列的pluginGroup元素。表示当通过plugin的前缀来解析plugin的时候到哪里寻找。
  pluginGroup元素指定的是plugin的groupId。
  默认情况下,Maven会自动把org.apache.maven.plugins 和 org.codehaus.mojo 添加到pluginGroups下。
  -->
  <pluginGroups>
  </pluginGroups>

  <!-- 用来配置不同的代理。-->
  <proxies>
  </proxies>
  
  <!--配置服务端的一些设置。一些设置如安全证书不应该和pom.xml一起分发。这种类型的信息应该存在于构建服务器上的settings.xml文件中。 -->
  <servers>
    <!--服务器元素包含配置服务器时需要的信息 -->
    <server>
        <!--这是server的id(注意不是用户登陆的id),该id与distributionManagement中repository元素的id相匹配。 -->
        <id>rdc-releases</id>
        <!--鉴权用户名。鉴权用户名和鉴权密码表示服务器认证所需要的登录名和密码。 -->
        <username>6011***1*****</username>
        <!--鉴权密码 。鉴权用户名和鉴权密码表示服务器认证所需要的登录名和密码。密码加密功能已被添加到2.1.0 +。详情请访问密码加密页面 -->
        <password>)51*****</password>
    </server>
    <server>
        <id>rdc-snapshots</id>
        <username>6011*1********</username>
        <password>)51*****</password>
    </server>
  </servers>
  
  <mirrors>
    <!-- 给定仓库的下载镜像。 -->
    <mirror>
        <!-- 该镜像的唯一标识符。id用来区分不同的mirror元素。 -->
        <id>alimaven</id>
        <!-- 镜像名称 -->
        <name>aliyun maven</name>
        <!-- 该镜像的URL。构建系统会优先考虑使用该URL,而非使用默认的服务器URL。 -->
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <!-- 被镜像的服务器的id。例如,如果我们要设置了一个Maven中央仓库(http://repo.maven.apache.org/maven2/)的镜像,就需要将该元素设置成central。这必须和中央仓库的id central完全一致。 -->
        <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>
  
  <!-- 根据环境参数来调整构建配置的列表。-->
  <profiles>
    <profile>
      <!-- profile的唯一标识 -->
      <id>jdk-1.8</id>
      <!-- 自动触发profile的条件逻辑 -->
      <activation>
        <!-- 表示当jdk的版本满足条件的时候激活 -->
        <jdk>1.8</jdk>
      </activation>

      <!-- 用于定义远程仓库的,当该profile是激活状态的时候,这里面定义的远程仓库将作为当前pom的远程仓库。它是maven用来填充构建系统本地仓库所使用的一组远程仓库。 -->
      <repositories>
        <!--包含需要连接到远程仓库的信息 -->
        <repository>
          <!--远程仓库唯一标识 -->
          <id>rdc-releases</id>
          <!--远程仓库URL,按protocol://hostname/path形式 -->
          <url>https://packages.aliyun.com/maven/re1*****/</url>
          <!--如何处理远程仓库里发布版本的下载 -->
          <releases>
            <!--true或者false表示该仓库是否为下载某种类型构件(发布版,快照版)开启。 -->
            <enabled>true</enabled>
          </releases>
          <!--如何处理远程仓库里快照版本的下载。有了releases和snapshots这两组配置,POM就可以在每个单独的仓库中,为每种类型的构件采取不同的策略。
          例如,可能有人会决定只为开发目的开启对快照版本下载的支持。参见repositories/repository/releases元素 -->
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
        <repository>
          <id>rdc-snapshots</id>
          <url>https://packages.aliyun.com/maven/re1*****/</url>
          <releases>
            <enabled>false</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
    </profile>
  </profiles>
  
  <!-- 手动激活profiles的列表,按照profile被应用的顺序定义activeProfile。 -->
  <activeProfiles>
    <!-- 要激活的profile id -->
    <activeProfile>jdk-1.8</activeProfile>
  </activeProfiles>
</settings>

4、效果

在这里插入图片描述
出现问题的检查思路: 本地maven仓库记得处理, 可能第一次没有拉取下来, 里面存在一些会冲突的文件导致
然后就是尝试修改上传到云效的Group Artifact, 或者拉取云效里面提供的默认包, 来对比检查
在这里插入图片描述

Logo

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

更多推荐