Maven搭建私服

一,私服的安装与配置

nexus服务器的下载地址:sonatype.com

下载好相应的系统版本,解压开,其中包含两个目录,一个为服务器(nexus),一个为工作空间(sonatype-work)(运行的所有数据)

启动:

  1. 进入服务器的bin目录,打开cmd命令行输入:nexus /run nexus

  2. 启动时间较长,请耐心等待,如果出现Started Sonatype ***则为启动成功

访问: 默认地址为 http://loclhost:8081,浏览器回车后进入到页面

  • 修改端口的方法:在服务器目录下的/etc/nexus-default.properties文件修改端口
  • 修改服务器内存等配置:在服务器目录下的/bin/nexus.vmoptions文件
  • 在使用的时候我们需要登录,其中登录账号是admin,密码保存在工作目录/nexus3/admin.password文件内

刚安装好的nexus一共给我们创建了7个仓库(不同的nexus版本可能有一点差距),我们只需要关注Format为maven2的仓库即可,也就是一共有4个:

  • maven-central:该仓库用来代理 Maven 中央仓库,其策略为 Release,只会下载和缓存中央仓库中的发布版本的构件。
  • maven-releases:策略为 Release 的宿主仓库,用来部署公司或组织内部的发布版本构件。
  • maven-snapshots:策略为 Snapshot 的宿主仓库,用来部署公司或组织内部的快照版本构件。
  • maven-public:仓库组,默认聚合了以上三个仓库。

在私服中修改访问权限,允许匿名用户访问

在私服中配置代理仓库地址,即配置镜像源

将默认的中央仓库地址,改为阿里云镜像:

url 复制代码
http://maven.aliyun.com/nexus/content/groups/public/

二,私服的仓库分类

仓库分类:

  • 宿主仓库hosted:保存无法从中央仓库获取的资源。

    例如自己研发的项目。

    第三方非开源项目。

  • 代理仓库proxy:代理远程仓库,通过nexus访问其他公共仓库,例如中央仓库。

  • 仓库组group:

    • 将若干仓库组成一个群组,简化配置。
    • 仓库组不能存放资源,是属于设计型仓库。

私服的资源获取如下图:

三,WebUI仓库使用方法

  1. 创建仓库

  2. 将仓库加入maven-public群组中

  3. 通过网页ui方式上传资源到仓库中

    其中group id等参数就是你jar包的坐标

四,idea环境中资源的上传与下载

idea操作流程:

配置流程:

  1. 配置本地仓库访问私服的权限在maven安装路径下的/conf/settings.xml

    xml 复制代码
    <servers>
        <!--配置两个,代表访问两个仓库的用户,其中id名字虽然是随意的,但是建议取名为仓库名-->
        <!--账号密码就是web ui界面的账号密码-->
        <server>
        	<id>maven-release</id>
            <username>admin</username>
            <password>admin</password>
        </server>
            <server>
        	<id>maven-snapshots</id>
            <username>admin</username>
            <password>admin</password>
        </server>
    </servers>
  2. 配置本地仓库资源来源也在settings.xml

    xml 复制代码
    <mirrors>
    	<mirror>
            <!--这个id随意,建议取仓库名-->
        	<id>nexus-maven</id>
            <!--这个*代表所有资源都从这个仓库拿-->
            <mirrorOf>*</mirrorOf>
            <!--这个代表仓库组的url-->
            <url>http://172.31.154.122:8081/repository/maven-public/</url>
        </mirror>
    </mirrors>
  3. 在idea中配置pom文件中添加内容:

    xml 复制代码
        <!--发布配置管理-->
        <distributionManagement>
            <!--release版本的资源发布地址-->
            <repository>
                <!--这个是你server里面的值-->
                <id>maven-release</id>
                <!--这个是你仓库的url-->
                <url>http://172.31.154.122:8081/repository/maven-releases/</url>
            </repository>
            <!--snapshots版本的资源发布地址-->
            <snapshotRepository>
                <!--这个是你server里面的值-->
                <id>maven-snapshots</id>
                <!--这个是你仓库的url-->
                <url>http://172.31.154.122:8081/repository/maven-snapshots/</url>
            </snapshotRepository>
        </distributionManagement>

    流程:idea发布资源包时,通过url访问仓库,通过id找到本地仓库中的server配置的账号密码来访问仓库。

  4. idea的maven点击deploy就发布到私服了。

  5. 将maven的代理仓库配置远程仓库为阿里云仓库

    进入Nexus界面,选择中央仓库

    将原地址 repo1.maven.org/maven2/ 改为阿里云的地址 maven.aliyun.com/nexus/conte... 即可

五,使用Docker快速搭建maven私服

  1. 拉取镜像

    bash 复制代码
    docker pull sonatype/nexus3
  2. 创建外部挂载文件

    bash 复制代码
    #挂载文件夹一定要放开权限,否则后面启动nexus时会无法启动
    mkdir -p /usr/local/nexus-data && chmod 777 /usr/local/nexus-data
  3. 启动容器

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

登录账号admin,密码可以去看看nexus-data里面的admin.password文件

相关推荐
酷爱码9 小时前
IDEA 中 Maven Dependencies 出现红色波浪线的原因及解决方法
java·maven·intellij-idea
有梦想的攻城狮2 天前
maven中的maven-antrun-plugin插件详解
java·maven·插件·antrun
RainbowJie12 天前
从零到一:Maven 快速入门教程
java·maven
RainbowJie12 天前
Maven的生命周期
java·maven
凌辰揽月2 天前
Web后端基础(Maven基础)
前端·pycharm·maven
程序员葵安2 天前
【Java Web】9.Maven高级
java·数据库·后端·maven
eternal__day3 天前
微服务架构下的服务注册与发现:Eureka 深度解析
java·spring cloud·微服务·eureka·架构·maven
青衫红叶3 天前
Idea使用springAI搭建MCP项目
java·spring cloud·maven·intellij-idea·spring-ai
杨DaB4 天前
【JavaWeb】Maven、Servlet、cookie/session
hive·servlet·maven
Aric_Jones4 天前
HashMap 的底层原理
java·eclipse·maven·hashmap·hash