4.Maven私服安装使用

本文介绍了如何使用Docker搭建Maven私服Nexus,包括下载Docker镜像、启动容器、配置容器数据持久化、创建不同类型的仓库以及本地Maven的配置。此外,还讲解了如何在Idea中上传和下载jar包到Nexus私服,以及修改中央仓库为阿里云镜像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Maven私服

Maven私服就是本地仓库和中英仓库之间的桥梁,一般公司内部会搭建自己的私服

2. Maven私服安装

一般Maven私服使用Nexus服务器管理

下载网址:Download (sonatype.com)

我们这使用Docker下载

Docker镜像地址:sonatype/nexus3 - Docker Image | Docker Hub

2.1 下载Docker镜像

docker pull sonatype/nexus3:3.33.1

2.2 启动docker容器

先创建一个未映射的容器,把容器中的数据拷贝出来,否则直接挂在目录会报错

docker run -d --privileged=true -p 8081:8081 --name nexus --restart=always sonatype/nexus3:3.33.1

docker run -d --privileged=true -p 8081:8081 --name nexus --restart=always -e INSTALL4J_ADD_VM_PARAMS="-Xms1024m -Xmx1024m -XX:MaxDirectMemorySize=1024m -Djava.util.prefs.userRoot=/some-other-dir" sonatype/nexus3:3.33.1 

mkdir -p /docker/nexus/nexus-data
docker cp nexus:/nexus-data /docker/nexus/
chown -R 200 /docker/nexus/nexus-data

将容器内部/var/nexus-data目录挂载到主机/docker/nexus-data目录。

docker run -d --privileged=true -p 8081:8081 --name nexus -v /docker/nexus/nexus-data/:/nexus-data/ --restart=always -e INSTALL4J_ADD_VM_PARAMS="-Xms1024m -Xmx1024m -XX:MaxDirectMemorySize=1024m -Djava.util.prefs.userRoot=/some-other-dir" sonatype/nexus3:3.33.1 

--privileged=true 授予root权限(挂载多级目录必须为true,否则容器访问宿主机权限不足)
--name=名字 给你的容器起个名字
-p 宿主机端口:容器端口映射
-v 宿主机目录:容器目录 目录挂载
--restart=always 自动启动容器
--INSTALL4J_ADD_VM_PARAMS 调整内存,默认2G

2.3 登录nexus

访问http://ip:8081,maven私服启动稍微比较慢,等待1分钟左右。

登录账号admin,密码进入容器查看

docker exec -it nexus /bin/bash
bash-4.4$ cat /opt/sonatype/sonatype-work/nexus3/admin.password

在这里插入图片描述

之后可以重置密码
在这里插入图片描述

3. 创建私服仓库

3.1 Nexus 仓库类型

  • hosted

    本地仓库,通常我们会用来部署自己的jar包到这一类型仓库,包含RELEASE和SNAPSHOT类型

  • proxy

    代理仓库,用来代理远程的公共仓库,比如阿里云,用来缓存公网上的jar包

  • group

    仓库组,用来合并多个hosted和proxy类型的层库,统一以一个地址暴露

3.2 Maven用到的仓库说明

在这里插入图片描述

  • maven-ventral

    Maven中央仓库,默认是官方网站https://repo1.maven.org/maven2/可以修改为阿里云的国内镜像

  • maven-release

    私服发型版本jar

  • maven-snapshots

    私服快照版本jar

  • maven-public

    仓库分组,吧上面三个仓库组合在一起对外提供服务

3.1 修改中央仓库地址为阿里云

登录maven私服,点击设置,选择Repositories,可以看到所有的仓库。
在这里插入图片描述

其中maven-central为默认中央仓库,我们需要把仓库地址修改为阿里云仓库地址https://maven.aliyun.com/repository/public

3.2 创建仓库

上述的三个库加上一个组,即可组合Release、snapshots和中央仓库,可以实现打包到私服,私服没有的,从公共仓库下载

也可以自己建立一套,MyReleases、MySnapshots、MyProxy、MyGroup

  • 创建一个仓库,MyReleases,类型为maven2(hosted),release版本
    在这里插入图片描述

  • 创建一个仓库,MySnapshots,类型为maven2(hosted),snapshot版本
    在这里插入图片描述

  • 创建一个仓库,MyProxy,类型为maven2(proxy)
    在这里插入图片描述

  • 创建一个仓库,MyGroup,类型为maven2(group)
    在这里插入图片描述

即可通过MyGroup地址统一暴露

4. 本地maven配置(全局配置)

4.1 在maven的settings.xml中配置私服用户名密码

在server中配置用户名、密码
在这里插入图片描述

<servers>
    <server>
        <id>MyMaven</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
</servers>

4.2 配置拉取的私服地址

在mirrors中配置私服仓库,用来拉取jar包,填写统一的group仓库组地址
在这里插入图片描述

<mirrors>
	<mirror>
		<id>MyMaven</id>
		<mirrorOf>*</mirrorOf>
		<name>MyMaven</name>
		<url>http://192.168.10.31:8081/repository/maven-public/</url>
	</mirror>
</mirrors>

4.3 profiles设置私服仓库

在settings中的profiles中配置多个私服仓库
在这里插入图片描述

<profiles>
    <!-- 配置默认的JDK版本 -->
    <profile>
        <id>jdk-1.8</id>
        <activation>
            <activeByDefault>true</activeByDefault>
            <jdk>1.8</jdk>
        </activation>
        <properties> 
            <maven.compiler.source>1.8</maven.compiler.source> 
            <maven.compiler.target>1.8</maven.compiler.target> 
            <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> 
        </properties>
    </profile>
    <profile>
        <id>MyMaven</id>
        <!-- 远程仓库列表 -->
        <repositories>
            <repository>
                <id>MyMaven</id>
                <name>MyMaven</name>
                <!-- 虚拟的URL形式,指向镜像的URL-->
                <url>http://192.168.10.31:8081/repository/maven-releases/</url>
                <layout>default</layout>
                <!-- 表示可以从这个仓库下载releases版本的构件--> 
                <releases>
                    <enabled>true</enabled>
                </releases>
                <!-- 表示可以从这个仓库下载snapshot版本的构件 --> 
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </repository>
        </repositories>
        <!-- 插件仓库列表 -->
        <pluginRepositories>
            <pluginRepository>
                <id>MyMaven</id>
                <name>MyMaven</name>
                <url>http://192.168.10.31:8081/repository/maven-snapshots/</url>
                <layout>default</layout>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
                <releases>
                    <enabled>true</enabled>
                </releases>
            </pluginRepository>
        </pluginRepositories>
    </profile>
</profiles>

<!-- 激活的环境 -->
<activeProfiles>
    <activeProfile>jdk-1.8</activeProfile>
    <activeProfile>MyMaven</activeProfile>
</activeProfiles>

5. Idea上传下载私服

5.1 上传jar包到私服

设置私服地址

<distributionManagement>
    <!-- 指定私服地址,发布的仓库地址,多个仓库根据仓库类型,自动上传到指定类型的仓库 -->
    <repository>
        <id>MyMaven</id>
        <name>MyMaven</name>
        <url>http://192.168.10.31:8081/repository/maven-releases/</url>
    </repository>
    <snapshotRepository>
        <id>MyMaven</id>
        <name>MyMaven</name>
        <url>http://192.168.10.31:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>

上传成功
在这里插入图片描述

查看发布版仓库中,已经有上传的了
在这里插入图片描述

4.2 从私服下载文件

在pom.xml中也可以配置私服,用于拉取私服

<!-- 配置远程仓库列表 -->
<repositories>
    <!-- 自定义的私服 -->
    <repository>
        <id>MyRelease</id>
        <name>MyRelease</name>
        <url>http://192.168.10.31:8081/repository/maven-public/</url>
    </repository>
</repositories>
<!-- 配置插件远程仓库列表 -->
<pluginRepositories>
    <!-- 自定义的私服 -->
    <pluginRepository>
        <id>MyRelease</id>
        <name>MyRelease</name>
        <url>http://192.168.10.31:8081/repository/maven-public/</url>
    </pluginRepository>
</pluginRepositories>

因为settings.xml中配置了全局的私服,所以这不用单独配置也可以
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值