当前位置:首页 > 技术 > 正文内容

使用Nexus搭建Maven私有仓库全攻略

访客 技术 2026年6月6日 1

为什么需要私有仓库

在企业开发环境中,网络隔离是常见的安全策略。许多公司不允许开发人员直接访问外网,这就导致无法从Maven中央仓库下载依赖包。解决方案是在局域网内搭建一台具有外网访问权限的服务器,部署Nexus私有仓库,开发人员通过该仓库获取依赖。

另一个重要原因是防止IP被中央仓库拉黑。如果同一IP地址频繁大量下载,可能会被中央仓库限制访问。通过私有仓库统一管理依赖,可以有效规避这一风险。

部署Nexus服务

获取安装包

从Sonatype官网下载Nexus 2.x版本:

https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.14.2-01-bundle.zip

启动服务

解压下载的压缩包,进入bin/jsw目录,根据操作系统选择对应的版本。以Windows 64位系统为例:

  • console-nexus.bat - 控制台模式启动,关闭命令行窗口后服务停止
  • install-nexus.bat - 安装为系统服务,开机自启(推荐生产环境使用)
  • stop-nexus.bat - 停止服务
  • uninstall-nexus.bat - 卸载服务

访问控制台

服务启动后,访问管理界面:

http://localhost:8081/nexus

使用默认管理员账户登录:

  • 用户名:admin
  • 密码:admin123

确保8081端口未被其他应用占用。

仓库配置

开启远程索引下载

在管理界面中,选择需要配置的仓库,将"Download Remote Indexes"设置为true,这样Nexus会定期同步中央仓库的索引,方便搜索依赖。

手动上传第三方JAR包

某些企业级JAR包中央仓库没有提供,需要手动上传:

  1. 在仓库管理界面选择"Artifact Upload"选项卡
  2. 填写GAV参数:groupId、artifactId、version
  3. 选择需要上传的JAR文件
  4. 点击上传按钮完成部署

重要提示:如果希望依赖自动从中央仓库同步到私有仓库,必须正确配置远程仓库的索引下载选项。

Maven客户端配置

配置settings.xml

修改Maven安装目录下的conf/settings.xml文件,配置本地仓库路径和镜像地址:

<settings>
    <localRepository>D:\maven\repository</localRepository>
    
    <mirrors>
        <mirror>
            <id>nexus-mirror</id>
            <mirrorOf>central</mirrorOf>
            <name>Nexus Mirror</name>
            <url>http://192.168.100.50:8081/nexus/content/groups/public/</url>
        </mirror>
    </mirrors>
</settings>

配置说明:

  • localRepository:指定本地仓库的存储路径
  • mirrorOf:设置为central表示所有对中央仓库的请求都重定向到私有仓库
  • url:填入Nexus服务器的实际IP地址

配置服务器认证信息

在settings.xml的server节点中添加发布用的认证信息:

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

项目部署配置

配置项目pom.xml

在项目的pom.xml中添加distributionManagement配置:

<project>
    ...
    <distributionManagement>
        <repository>
            <id>nexus-releases</id>
            <name>Nexus Releases Repository</name>
            <url>http://192.168.100.50:8081/nexus/content/repositories/releases/</url>
        </repository>
        <snapshotRepository>
            <id>nexus-snapshots</id>
            <name>Nexus Snapshots Repository</name>
            <url>http://192.168.100.50:8081/nexus/content/repositories/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>
</project>

注意事项:pom.xml中repository的id必须与settings.xml中server的id保持一致,否则会出现权限验证失败的错误。

执行部署

在Eclipse中右键点击项目,选择"Run As" → "Maven Build",在Goals中输入deploy,然后执行即可将项目发布到私有仓库。

发布成功后,可以在Nexus管理界面的仓库列表中查看已部署的构件。

总结

通过以上步骤,Maven私有仓库即可搭建完成并投入使用。开发人员只需在本地配置好Maven的settings.xml,即可透明地使用私有仓库中的依赖,无需关心依赖的实际来源。

标签: nexusmaven

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。