从零开始使用Nexus搭建你的Maven私服(Windows系统)

简介: 作为开发人员,我们经常需要依赖于Maven来管理项目的依赖,但是在工作中可能会遇到网络不稳定、依赖库被删除等问题。为了解决这些问题,搭建一个Maven私服是一个理想的选择。本文将介绍如何在Windows系统环境下使用Nexus来搭建Maven私服。

一、Nexus是什么?

Nexus是Sonatype公司发布的一款功能强大的仓库管理软件,常被用来搭建Maven私服,因此也有人将其称为‘Maven仓库管理器’。由于私服具有降低中央仓库负荷、节省外网带宽、提高项目稳定性等优点,因此在实际开发过程中得到了广泛应用。

Nexus分为开源版和专业版,其中开源版足以满足大部分个人和小型团队的需求,而专业版则提供了更多的企业级特性。作为一个强大的软件仓库,Nexus可以用来存储、共享和分发各种软件组件,如Java包、Ruby gems、Node.js包等,并且支持与Docker等容器技术的集成,提供企业级的安全性和可扩展性。因此,它被广泛用于企业级开发团队中,帮助他们更好地管理、共享和分发软件组件。此外,通过代理外部仓库、缓存构建和部署第三方构件等功能,Nexus可以显著提高开发团队的工作效率。

二、使用Nexus搭建Maven私服的好处

  1. 节省外网带宽:Nexus通过代理外部仓库,避免了重复下载相同构件,从而有效降低了外网带宽的消耗。
  2. 加速Maven构建:通过利用Nexus私服,Maven能够仅从局域网中获取所需数据,显著提升了构建速度。
  3. 部署第三方构件:对于那些无法从外部远程仓库获取的构件,可以将其部署至Nexus私服中,确保内部的Maven项目能够顺利使用。
  4. 提高稳定性,增强控制:由于Nexus缓存了大量的构建,即使在网络中断的情况下,Maven依然能够维持正常的运行,确保了项目的稳定性。

三、搭建与使用Maven私服

1.下载并启动Nexus

Nexus官网下载地址:

https://help.sonatype.com/en/download.html

选择Windows archive:


进行解压(以nexus-3.19.1-01-win64为示例):

进入bin目录(示例:nexus-3.19.1-01-win64\nexus-3.19.1-01\bin):

image.gif在当前目录打开cmd,并输入nexus.exe/run:


出现如下界面表明启动成功,默认端口为8081:


如果需要修改端口号,可在配置文件(nexus-default.properties)中修改(示例:nexus-3.19.1-01-win64\nexus-3.19.1-01\etc):



通过浏览器访问 http://localhost:8081/:


通过文件内容查看登录密码:

  • 2.x的版本,初始账户和密码分别为admin和admin123
  • 3.x的版本,初始账户是admin,密码在sonatype-work\nexus3\admin.password文件里


进行登录:


点击next:

image.gif

设置新密码:


点击next:


点击finish:


之后想要修改密码可点击账号进行修改:


2.上传jar包到Nexus

(1) 创建仓库

点击菜单栏中的Repositories,显示仓库列表:



Nexus仓库类型(Type属性):

  • Group(仓库组):这种类型的仓库主要用来聚合多个代理仓库和宿主仓库。通过创建一个Group仓库,开发人员可以将多个其他类型的仓库组合在一起,并为这些仓库提供一个统一的服务地址。这样,Maven或其他构建工具可以更加方便地从这个统一的地址获取所需的构件,而无需关心这些构件实际上存储在哪个具体的仓库中。
  • Hosted(宿主仓库):也被称为Nexus本地仓库,这种类型的仓库通常用来存储和部署本地项目所产生的构件。例如,开发人员可以将团队开发的Java库或其他类型的软件包上传到一个Hosted仓库中,以便其他项目或团队可以方便地引用和使用这些构件。
  • Proxy(代理仓库):这种类型的仓库用来代理远程公共仓库,如Maven中央仓库、JBoss远程仓库等。通过设置Proxy仓库,开发人员可以缓存远程仓库中的构件,从而提高构件的获取速度并减轻远程仓库的负载。此外,代理仓库还可以帮助解决某些网络访问问题,例如访问远程仓库时遇到的连接超时或访问限制等问题。
  • Virtual(虚拟仓库):这种类型的仓库是一个逻辑上的仓库,它可以根据特定的规则将请求重定向到其他类型的实体仓库。虚拟仓库本身不存储任何实际的构件,而是根据配置将请求路由到一个或多个实际存储构件的仓库。这可以帮助开发人员实现更灵活的构件管理和访问控制。


Nexus本地仓库(Hosted)类型:

  • Releases(稳定版仓库):用于存放项目中正式发布的版本构建。这些构建通常是经过完整测试和验证的Release版本,适用于产品迭代过程中对外发布。其中所包含的包版本均为正式的Release版本,具有稳定性和可靠性。
  • Snapshots(快照版仓库):主要用于发布非稳定版本的构建。在开发过程中,当需要临时发布一个版本以供团队成员依赖并继续下一个功能的开发时,可以使用该仓库。这些临时版本通常是不稳定的,因此在发布时需要注意去除快照标识。
  • 3rd Party(第三方仓库):用于存储和管理非中央仓库提供的第三方库。与中央仓库不同,这个仓库允许用户手动上传包。它通常用于上传在中央仓库中无法找到的特定包,或者在内网环境下无法连接中央仓库时需要手动导入包的情况。此仓库具有灵活性和自定义性,可以满足特定项目需求。


点击 create repository 创建仓库:


选择maven2(hosted):


填写和修改以下两个地方,并创建仓库:


创建成功:


(2) 上传jar包

点击Upload后选择新建的仓库:


选择jar包,并填写相应信息,然后进行上传:


查看上传结果:


3.Maven工程引入jar包

复制仓库URL:

image.gif


在Maven配置文件settings.xml中添加私服配置:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                          https://maven.apache.org/xsd/settings-1.0.0.xsd">
    <mirrors>
        <!--私服配置-->
        <mirror>
            <id>MyRepository</id>
            <mirrorOf>*</mirrorOf>
            <name>MyRepository</name>
            <url>http://localhost:8081/repository/MyRepository/</url>
        </mirror>
        <mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
    </mirrors>
</settings>

创建一个Maven项目,并引入依赖,依赖如下:

image.gif

4.使用IDEA上传依赖

在Maven配置文件settings.xml的标签中配置用户名和密码:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                          https://maven.apache.org/xsd/settings-1.0.0.xsd">
    <mirrors>
        <!--私服配置-->
        <mirror>
            <id>MyRepository</id>
            <mirrorOf>*</mirrorOf>
            <name>MyRepository</name>
            <url>http://localhost:8081/repository/MyRepository/</url>
        </mirror>
        <mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
    </mirrors>
    <servers>
        <server>
            <id>MyRepository</id>
            <username>用户名</username>
            <password>密码</password>
        </server>
    </servers>
</settings>

image.gif在Maven项目的pom.xml文件中添加私服路径,可分为ReleasesSnapshots两种类型(如果添加需要创建对应的MyRepository-snapshots仓库):

<distributionManagement>  
    <repository>  
        <id>MyRepository</id>  
        <url>http://localhost:8081/repository/MyRepository/</url>  
    </repository>  
    <snapshotRepository>  
        <id>MyRepository-snapshots</id>  
        <url>http://localhost:8081/repository/MyRepository-snapshots/</url>  
    </snapshotRepository>  
</distributionManagement>

image.gif在Maven生命周期(Lifecycle)中,执行deploy操作:

image.gif


总结

以上就是从零开始使用Nexus搭建Maven私服(Windows系统)的内容,希望本文能对大家有所帮助。

相关文章
|
2月前
|
安全 数据安全/隐私保护 Windows
如何在Windows 10系统中查看已连接WiFi密码-亲测可用-优雅草卓伊凡
如何在Windows 10系统中查看已连接WiFi密码-亲测可用-优雅草卓伊凡
136 15
如何在Windows 10系统中查看已连接WiFi密码-亲测可用-优雅草卓伊凡
|
2月前
|
人工智能 API 调度
微软开源Windows桌面智能体操作系统!UFO²:一句话调度多应用,自动协同工作
UFO²是微软推出的Windows桌面多智能体操作系统,通过中央HostAgent协调多个AppAgent实现跨应用任务自动化,结合GUI交互和原生API调用提升执行效率,支持虚拟桌面隔离运行。
227 3
微软开源Windows桌面智能体操作系统!UFO²:一句话调度多应用,自动协同工作
|
2月前
|
关系型数据库 虚拟化 UED
Omnissa Horizon Windows OS Optimization Tool 2503 - Windows 系统映像优化工具
Omnissa Horizon Windows OS Optimization Tool 2503 - Windows 系统映像优化工具
89 7
Omnissa Horizon Windows OS Optimization Tool 2503 - Windows 系统映像优化工具
|
2月前
|
存储 Java Maven
Maven系统级别依赖:解决部署时Jar包缺失问题
以上就是关于Maven系统级别依赖解决部署时Jar包缺失问题的解答,希望对你有所帮助。在软件开发中,遇到问题并解决问题是常态,希望你能够善用这些工具,解决你遇到的问题。
111 28
|
1月前
|
JSON 安全 数据可视化
Elasticsearch(es)在Windows系统上的安装与部署(含Kibana)
Kibana 是 Elastic Stack(原 ELK Stack)中的核心数据可视化工具,主要与 Elasticsearch 配合使用,提供强大的数据探索、分析和展示功能。elasticsearch安装在windows上一般是zip文件,解压到对应目录。文件,elasticsearch8.x以上版本是自动开启安全认证的。kibana安装在windows上一般是zip文件,解压到对应目录。elasticsearch的默认端口是9200,访问。默认用户是elastic,密码需要重置。
342 0
|
8月前
|
安全 Windows
永久关闭 Windows 11 系统更新
永久关闭 Windows 11 系统更新
453 0
|
3月前
|
算法 关系型数据库 测试技术
WHQL微软驱动签名方案,让驱动程序在Windows系统流畅运行
WHQL认证(Windows徽标认证)是微软设立的严格测试标准,旨在确保驱动程序的兼容性、稳定性和互通性。本文介绍了三种WHQL微软驱动签名方案:单系统签名、多系统签名和硬件兼容性测试方案,分别满足不同开发商的需求。通过WHQL认证,不仅能消除Windows安装警告,提升用户体验,还能获得“Designed for Windows”徽标授权,入列全球Windows Catalog及HCL产品表,提升品牌权威性和采购优先权。此外,访问微软OCA可获取错误反馈,助力产品质量改进。选择合适的签名方案,让驱动在Windows系统中流畅运行!
|
3月前
|
Windows
Windows系统云服务器配置多用户登录
本教程介绍了在Windows云服务器上配置远程桌面服务的详细步骤,包括安装桌面会话主机和远程桌面授权、允许多用户远程连接以及配置新用户并加入远程桌面用户组。通过添加角色和功能、设置组策略以及管理用户权限,实现多用户同时登录和远程访问。按照指引操作,可顺利完成服务器的远程访问配置,提升管理和使用效率。
377 0
|
5月前
|
监控 搜索推荐 开发工具
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
375 2
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
|
7月前
|
安全 Windows
【Azure Cloud Service】在Windows系统中抓取网络包 ( 不需要另外安全抓包工具)
通常,在生产环境中,为了保证系统环境的安全和纯粹,是不建议安装其它软件或排查工具(如果可以安装,也是需要走审批流程)。 本文将介绍一种,不用安装Wireshark / tcpdump 等工具,使用Windows系统自带的 netsh trace 命令来获取网络包的步骤
170 32

推荐镜像

更多