[运维日记 - 2][踩坑记录] 使用阿里云效作为Maven私有仓库

前言

最近学院搭服务器集群供大数据学习使用,平台上的Hadoop全家桶使用CDH来搭建,由于国内没有CDH版本的Maven依赖,负责搭集群的大佬在国外镜像拉了依赖下来,但是整个仓库打包又太麻烦,于是我来协助建一个私有仓库,方便学院的同学们使用

本文主要记录使用阿里云效来搭建Maven私有仓库期间所踩的

选用阿里云效来搭Maven私仓的原因是

  1. 得自己搭Nexus服务了
  2. 免费

阿里云效的官方文档(页面截图旧,不过勉强能搞懂怎么创建私仓),官方地址



搭建步骤

一、摸索

  1. 根据官方文档,进入页面,创建企业(其中会让你进入新版云效,然后新版和旧版的企业是区别开的,在新版创建的企业不在旧版显示,搞了我半天)
  2. 在旧版创建企业后,点击如图所示的地方进入私仓在这里插入图片描述
  3. 进入后会提示你创建私仓,免费创建即可
  4. 出现如图所示页面,往下拉即是本地Maven的配置方法和本地仓库迁移到私仓的方法在这里插入图片描述

二、需要注意的坑

1. 本地仓库到私仓的迁移

有了私仓,我们就直接把本地仓库迁移到私仓了,按照如图所示官方的方法进行迁移:
在这里插入图片描述
坑: 本地仓库中,不能存在空目录,否则迁移会报错中止:在这里插入图片描述在这里插入图片描述

2. 本地Maven的配置

在按照官方的提示配置好Maven的配置(USER_HOME/.m2/settings.xml)后,可以正常deploy,但是还是无法下载私仓中的依赖,导致pom标红,在翻看官方文档和百度Maven私仓有关内容后仍然无果(上网查Maven私仓配置,跟官网的说明几乎无二)

profiles节点

这是官网手动配置给出的说明
在这里插入图片描述

在添加profiles节点后,应在配置文件的后面追加:

    <activeProfiles>
    	<!-- 你需要添加的profile节点的id,如上图中的rdc-private-repo -->
        <activeProfile>rdc-private-repo</activeProfile>
    </activeProfiles>

如果activeProfiles节点中没有你刚加入的profile节点的id,则该profile节点不会生效

mirrors节点

官方示例配置中并没有提示用户添加mirrors节点,这也是只能deploy而不能从私仓中下载依赖的原因
在mirrors节点中,应追加如下mirror节点:

        <mirror>
            <id>rdc-releases</id>
            <mirrorOf>rdc-releases</mirrorOf>
            <name>rdc-releases</name>
            <url>https://repo.rdc.aliyun.com/repository/你的releases私仓地址/</url>
        </mirror>
		
        <mirror>
			<id>rdc-snapshots</id>
			<url>https://repo.rdc.aliyun.com/repository/你的snapshots私仓地址/</url>
            <mirrorOf>rdc-snapshots</mirrorOf>
            <name>rdc-snapshots</name>
        </mirror>

注意: 此处mirror节点下的id,应与server节点下的id对应

在这个问题上搞了半天,只能感叹自己的Maven基础还不扎实,菜了
在这里插入图片描述

3. 最终配置

USER_HOME/.m2/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">
    <mirrors>
        <mirror>
            <id>mirror</id>
            <mirrorOf>central,jcenter</mirrorOf>
            <name>mirror</name>
            <url>https://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror>

        <mirror>
            <id>rdc-releases</id>
            <mirrorOf>rdc-releases</mirrorOf>
            <name>rdc-releases</name>
            <url>https://repo.rdc.aliyun.com/repository/你的私仓release地址/</url>
        </mirror>
		
        <mirror>
			<id>rdc-snapshots</id>
			<url>https://repo.rdc.aliyun.com/repository/你的私仓snapshots地址/</url>
            <mirrorOf>rdc-snapshots</mirrorOf>
            <name>rdc-snapshots</name>
        </mirror>

    </mirrors>
    <servers>
        <server>
            <id>rdc-releases</id>
            <username>你的用户名</username>
            <password>你的密码</password>
        </server>
        <server>
            <id>rdc-snapshots</id>
            <username>你的用户名</username>
            <password>你的密码</password>
        </server>
    </servers>
    <profiles>
        <profile>
            <id>rdc</id>
            <properties>
                <altReleaseDeploymentRepository>
                    rdc-releases::default::https://repo.rdc.aliyun.com/repository/你的私仓release地址/
                </altReleaseDeploymentRepository>
                <altSnapshotDeploymentRepository>
                    rdc-snapshots::default::https://repo.rdc.aliyun.com/repository/你的私仓snapshots地址/
                </altSnapshotDeploymentRepository>
            </properties>
            <repositories>
                <repository>
                    <id>central</id>
                    <url>https://maven.aliyun.com/nexus/content/groups/public</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </repository>
                <repository>
                    <id>snapshots</id>
                    <url>https://maven.aliyun.com/nexus/content/groups/public</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
                <repository>
                    <id>rdc-releases</id>
                    <url>https://repo.rdc.aliyun.com/repository/你的私仓release地址</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </repository>
                <repository>
                    <id>rdc-snapshots</id>
                    <url>https://repo.rdc.aliyun.com/repository/你的私仓snapshots地址/</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>central</id>
                    <url>https://maven.aliyun.com/nexus/content/groups/public</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </pluginRepository>
                <pluginRepository>
                    <id>snapshots</id>
                    <url>https://maven.aliyun.com/nexus/content/groups/public</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
                <pluginRepository>
                    <id>rdc-releases</id>
                    <url>https://repo.rdc.aliyun.com/repository/你的私仓release地址</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </pluginRepository>
                <pluginRepository>
                    <id>rdc-snapshots</id>
                    <url>https://repo.rdc.aliyun.com/repository/你的私仓snapshots地址/</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>
    <activeProfiles>
        <activeProfile>rdc</activeProfile>
    </activeProfiles>
</settings>

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页