[Maven 基础课程]13_Maven 私服的使用

Maven 项目如何使用 Nexus

在 Maven 项目中使用 Nexus 主要分为两部分:从 Nexus 下载依赖和向 Nexus 发布构件。

从 Nexus 中下载依赖

如果想让 Maven 从 Nexus 中下载依赖,需要让 Maven "认识" Nexus。

配置 Maven 使用 Nexus 作为镜像

为了让 Maven 从 Nexus 下载公共依赖,你需要将 Nexus 配置为 Maven 中央仓库的镜像(Mirror)。这样,所有对中央仓库的请求都会被重定向到你的 Nexus 私服。

打开你的 Maven 配置目录(默认在 ~/.m2/)下的 settings.xml 文件,改为如下配置:

xml 复制代码
<settings>
    <mirrors>
        <mirror>
            <id>nexus-public</id>
            <mirrorOf>*</mirrorOf>
            <url>http://your-nexus-server/repository/maven-public/</url>
        </mirror>
    </mirrors>
</settings>

</servers>
  <server>
    <id>nexus-public</id>
    <username>admin</username>
    <password>123456</password>
  </server>
</servers>

配置详解:

  • : 定义一个镜像仓库。
  • : 镜像的唯一标识,可以任意命名。
  • : 指定要代理哪个仓库。central 指代理 Maven 中央仓库。* 指代理所有外部仓库,包括中央仓库。
  • : 你的 Nexus 私服的公共分组仓库的 URL,这里指定的是 maven-public 分组仓库。

servers 中配置了一个服务器的用户名和密码,这里的 id 和我们 mirror 中的 id 保持一致,表示这个认证信息是专门为 nexus-public 这个镜像仓库配置的。username 和 password 分别配置的是用户名和密码。

通常,Nexus 的公共仓库(maven-public)是匿名可访问的。它是一个聚合仓库,将多个外部仓库(如 Maven Central)的内容聚合在一起,并提供给内部用户,所以不需要配置用户名和密码。

配置完成后,当你执行 mvn clean install 时,Maven 就会自动从你的 Nexus 私服下载依赖。

向 Nexus 发布构件

如果你想将自己的项目发布(deploy)到 Nexus,让团队其他成员使用,你需要进行两步配置。

第一步:在 pom.xml 中配置发布地址。

在你的项目的 pom.xml 文件中,添加 配置,指定构件要发布的仓库地址。

xml 复制代码
<project>
    <distributionManagement>
        <repository>
            <id>nexus-releases</id>
            <url>http://your-nexus-server/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>nexus-snapshots</id>
            <url>http://your-nexus-server/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>
</project>

配置详解:

  • : 定义构件的发布管理。
  • : 定义正式发布版本(Release)的仓库地址。
  • : 定义快照版本(Snapshot)的仓库地址。
  • : 这个 id 必须和下一步 settings.xml 中配置的 的 id 一致。

第二步:在 settings.xml 中配置认证信息。

因为向 Nexus 发布构件需要权限(如果 Nexus 你设置了不能匿名访问),所以你需要在 settings.xml 中配置用户名和密码。

这里的 id (Maven 配置文件)要和 distributionManagement (Maven 项目的配置文件)中的 id 对应上。

xml 复制代码
<settings>
    <servers>
        <server>
            <id>nexus-releases</id>
            <username>admin</username>
            <password>123456</password>
        </server>

        <server>
            <id>nexus-snapshots</id>
            <username>admin</username>
            <password>123456</password>
        </server>
    </servers>
</settings>

配置详解:

  • : 定义一个认证服务器。
  • : 必须和 pom.xml 中的 或 的 id 保持一致。
  • 和 : 登录 Nexus 的用户名和密码。

完成以上配置后,你就可以在项目根目录执行以下命令来发布构件了:

xml 复制代码
mvn clean deploy
相关推荐
Java程序员威哥几秒前
Spring Boot 3.x 云原生终极适配:GraalVM 原生镜像构建 + Serverless 生产级部署(完整实战+最优模板)
java·开发语言·spring boot·后端·云原生·serverless·maven
黛玉晴雯子0012 分钟前
Kubernets-Helm&发布模式(持续更新)
java·开发语言
qq_12498707532 分钟前
基于微信小程序宠物服务系统(源码+论文+部署+安装)
java·spring boot·后端·微信小程序·小程序·毕业设计·宠物
一嘴一个橘子5 分钟前
springMvc 快速体验
java
毕设源码-朱学姐7 分钟前
【开题答辩全过程】以 基于SSM框架的药店管理系统的设计与开发为例,包含答辩的问题和答案
java
kk哥889910 小时前
如何快速掌握JavaSE的核心语法?
java
我是一只小青蛙88810 小时前
AVL树:平衡二叉搜索树原理与C++实战
java·jvm·面试
浩瀚地学10 小时前
【Java】JDK8的一些新特性
java·开发语言·经验分享·笔记·学习
XXOOXRT11 小时前
基于SpringBoot的加法计算器
java·spring boot·后端·html5