[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
相关推荐
AI你一生一世4 小时前
不止于时序存储:DolphinDB 如何成为 AI 时代的工业智能底座
java·人工智能·struts·时序数据库·工业智能·dolphindb·ai基础设施
云-缩影4 小时前
拆解 AI 图像生成应用的后端架构:ECS、OSS 和大模型 API 怎么配合
java·spring boot·后端
瑞克-桑切斯4 小时前
7、MySQL 慢查询排查与优化实战指南
java·服务器·数据库
海的透彻9 小时前
dockerfile如何快速构建容器(java服务)
java·开发语言
code2cat9 小时前
Java工具篇之Gradle:用任务图组织构建与交付
java·开发语言·单元测试·gradle
后台模板学习10 小时前
大模型 Prompt 工程在电商订单系统中的踩坑记录
java·python·prompt
w_zero_one10 小时前
算法--构造
java·数据结构·算法
SL_staff10 小时前
制造业订单交付崩盘?用四层协同框架重建交付可信度(技术实践)
java·产品·全栈
SL_staff11 小时前
打破风控迭代死循环:用决策编排重构业务与技术协作链路
java·产品·全栈
Mikko711 小时前
Redis 连接数满了服务端有错误信息吗?连接数不增加却命令超时?6.2 实测连接池、超时与大 key 怎么判定
java·spring boot·redis·后端