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>
相关推荐
KATA~3 分钟前
解决MyBatis-Plus枚举映射错误:No enum constant问题
java·数据库·mybatis
xyliiiiiL18 分钟前
一文总结常见项目排查
java·服务器·数据库
shaoing20 分钟前
MySQL 错误 报错:Table ‘performance_schema.session_variables’ Doesn’t Exist
java·开发语言·数据库
腥臭腐朽的日子熠熠生辉1 小时前
解决maven失效问题(现象:maven中只有jdk的工具包,没有springboot的包)
java·spring boot·maven
ejinxian1 小时前
Spring AI Alibaba 快速开发生成式 Java AI 应用
java·人工智能·spring
杉之1 小时前
SpringBlade 数据库字段的自动填充
java·笔记·学习·spring·tomcat
圈圈编码2 小时前
Spring Task 定时任务
java·前端·spring
俏布斯2 小时前
算法日常记录
java·算法·leetcode
阳小江2 小时前
Docker知识点
运维·docker·容器
27669582922 小时前
美团民宿 mtgsig 小程序 mtgsig1.2 分析
java·python·小程序·美团·mtgsig·mtgsig1.2·美团民宿