Maven私服Docker的搭建

Maven私服Docker的搭建

参考:https://blog.csdn.net/sdgfafg_25/article/details/135146668

要在Docker中安装Maven私服,通常推荐使用Sonatype Nexus,它是一个强大的Maven仓库管理器。以下是使用Docker安装Nexus Maven私服的基本步骤:

  1. 拉取Nexus Docker镜像

    bash 复制代码
    docker pull sonatype/nexus3
  2. 创建数据存储目录(如果需要数据持久化):

    bash 复制代码
    mkdir -p /usr/local/nexus3/nexus-data
    chmod -R 777 /usr/local/nexus3/nexus-data
  3. 运行Nexus容器

    bash 复制代码
    docker run -d -p 8081:8081 --name nexus -v /usr/local/nexus3/nexus-data:/nexus-data sonatype/nexus3

    这将把Nexus容器的8081端口映射到宿主机的8081端口,并挂载数据卷以保持数据。

  4. 访问Nexus Web界面

    在浏览器中输入 http://localhost:8081 或者对应的服务器IP地址和端口,访问Nexus的Web界面。

http://192.168.1.57:8081

  1. 登录和配置

    首次登录时,你可能需要根据提示设置初始密码。密码通常存储在 /nexus-data/admin.password 文件中。你可以通过以下命令进入容器并查看密码:

    bash 复制代码
    docker exec -it nexus cat /nexus-data/admin.password

    116874b7-4bde-4d11-a68c-7c29fc6fc659 修改密码

    复制代码
    admin dx2024

    登录后,你可以修改密码,并根据需要配置仓库。

  2. 创建Maven仓库

    在Nexus的Web界面中,你可以创建不同类型的仓库,比如Hosted、Proxy或Group仓库。Hosted仓库用于存储你的项目构建生成的构件,Proxy仓库作为对外部仓库的缓存,而Group仓库可以组合多个仓库。

  3. 配置Maven项目

    在你的Maven项目中,需要配置pom.xml文件和settings.xml文件,以便项目知道如何使用Nexus私服。在pom.xml中配置distributionManagement,指定你的私服仓库地址。在settings.xml中添加服务器配置,包括仓库的ID和认证信息。

  4. 上传和使用构件

    使用Maven命令(如mvn deploy)将你的构件上传到Nexus私服。在项目的pom.xml中声明依赖项,Maven将从配置的私服仓库中获取这些依赖。

请注意,具体的配置和使用步骤可能会根据你的具体需求和环境有所不同。以上步骤提供了一个基本的指南,帮助你开始使用Docker搭建Maven私服。

仓库需要注意,建一个maven-aliyun,放入maven-public.

在新建两个,host宿主仓库,专门存放公司自己的jar

setting的xml配置 可以参考

复制代码
<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">

    <pluginGroups>
    </pluginGroups>

    <proxies>
    </proxies>

    <servers>
        <server>
            <id>nexus</id>
            <username>admin</username>
            <password>dx2024</password>
        </server>
        <server>
            <id>dx-releases</id>
            <username>admin</username>
            <password>dx2024</password>
        </server>
        <server>
            <id>dx-snapshots</id>
            <username>admin</username>
            <password>dx2024</password>
        </server>
    </servers>


    <mirrors>
        <mirror>
            <id>nexus</id>
            <mirrorOf>central</mirrorOf>
            <name>dx-maven</name>
            <url>http://192.168.1.57:8081/repository/maven-public</url>
        </mirror>

        <mirror>
            <id>aliyunmaven</id>
            <mirrorOf>*</mirrorOf>
            <name>阿里云公共仓库</name>
            <url>https://maven.aliyun.com/repository/public</url>
        </mirror>
    </mirrors>


    <profiles>
        <profile>
            <id>dev</id>
            <repositories>
                <repository>
                    <!-- 仓库id,repositories可以配置多个仓库,保证id不重复 -->
                    <id>nexus</id>
                    <!-- 仓库地址,即nexus仓库组的地址 -->
                    <url>http://192.168.1.57:8081/repository/maven-public</url>
                    <!-- 是否下载releases构件 -->
                    <releases>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </releases>
                    <!-- 是否下载snapshots构件 -->
                    <snapshots>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <!-- 插件仓库,maven的运行依赖插件,也需要从私服下载插件 -->
                <pluginRepository>
                    <!-- 插件仓库的id不允许重复,如果重复后边配置会覆盖前边 -->
                    <id>public</id>
                    <name>Public Repositories</name>
                    <url>http://192.168.1.57:8081/repository/maven-public</url>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>

    <activeProfiles>
        <activeProfile>dev</activeProfile>
    </activeProfiles>

</settings>
相关推荐
雾月553 分钟前
LeetCode 1292 元素和小于等于阈值的正方形的最大边长
java·数据结构·算法·leetcode·职场和发展
诡异森林。33 分钟前
Docker--Docker网络原理
网络·docker·容器
ALex_zry1 小时前
Docker Macvlan网络配置实战:解决“network already exists“错误
网络·docker·php
IT小辉同学1 小时前
Docker如何更换镜像源提高拉取速度
spring cloud·docker·eureka
24k小善1 小时前
Flink TaskManager详解
java·大数据·flink·云计算
想不明白的过度思考者1 小时前
Java从入门到“放弃”(精通)之旅——JavaSE终篇(异常)
java·开发语言
.生产的驴2 小时前
SpringBoot 封装统一API返回格式对象 标准化开发 请求封装 统一格式处理
java·数据库·spring boot·后端·spring·eclipse·maven
猿周LV2 小时前
JMeter 安装及使用 [软件测试工具]
java·测试工具·jmeter·单元测试·压力测试
晨集2 小时前
Uni-App 多端电子合同开源项目介绍
java·spring boot·uni-app·电子合同
时间之城2 小时前
笔记:记一次使用EasyExcel重写convertToExcelData方法无法读取@ExcelDictFormat注解的问题(已解决)
java·spring boot·笔记·spring·excel