利用Nexus搭建Maven私有仓库

Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。Nexus 使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过m2eclipse与Eclipse集成使用。Nexus支持WebDAV与LDAP安全身份认证。

私有仓库架设好以后,依赖的寻找路径变为:本地仓库->私有仓库->中央仓库

nexus安装

下载nexus

登录邮箱

选择操作系统

解压缩后保存两个文件夹

在nexus\nexus-3.29.1-01\bin目录下运行nexus

nexus /run


http://localhost:8081 ,打开nexus本地站点,点击登录,根据提示找到密码,用户名是admin

开启匿名访问

安装完毕

私有服务器仓库常用种类

  • proxy:代理仓库,本地仓库和远程仓库之间的枢纽
  • hosted:本地发布仓库

创建代理仓库

创建Release版本的仓库

创建Snapshot版本的仓库

配置私有仓库和发布仓库

<repositories>
    <!--配置私有仓库-->
    <repository>
        <id>k-nexus</id>
        <name>KNexus</name>
        <url>http://localhost:8081/repository/k-nexus/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>
<distributionManagement>
    <!--配置正式版发布仓库-->
    <repository>
        <id>mc-example-release</id>
        <name>Mc Example Release</name>
        <url>http://localhost:8081/repository/maven-releases/</url>
    </repository>
    <!--配置快照版发布仓库-->
    <snapshotRepository>
        <id>mc-example-snapshot</id>
        <name>Mc Example Snapshot</name>
        <url>http://localhost:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>

测试代理仓库

引入一个依赖,或者直接删除本地仓库,查看依赖下载好,是否同时保存在私有仓库?如果保存,则测试成功

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>
</dependencies>

我们可以看出检查本地仓库没有后,项目主动去代理仓库寻找,代理仓库也没有则通过远程仓库(这里是阿里云)下载。

发布Snapshot仓库

报授权错误,在settings.xml中添加授权信息

<servers>
    <server>
        <id>k-nexus-snapshot</id>
        <username>admin</username>
        <password>wzy1gqqbuu</password>
    </server>
</servers>

再次发布后,到发布仓库查看,发布成功

发布Release版本

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.mycompany.app</groupId>
    <artifactId>my-app</artifactId>
<!--    <version>1.0-SNAPSHOT</version>-->
    <version>2.0-RELEASE</version>

报同样的授权错误,同样授权信息

<servers>
    <!--snapshot仓库认证信息-->
    <server>
        <id>k-nexus-snapshot</id>
        <username>admin</username>
        <password>wzy1gqqbuu</password>
    </server>
    <!--release仓库认证信息-->
    <server>
        <id>k-nexus-release</id>
        <username>admin</username>
        <password>wzy1gqqbuu</password>
    </server>
</servers>

查看仓库,确认发布成功

其它配置

G:\Web\tools\nexus\sonatype-work\nexus3\etc\nexus.properties

# 更改站点端口
application-port=8085

总结

这是一篇入门教程,Nexus还有很多精彩功能等着探索。通过Nexus把私有仓库架设在局域网或者服务器上,通过平台管理依赖,可以下载依赖,可以发布依赖,避免了因本地环境发生变化而重新下载依赖,是团队开发提高效率的利器。

posted @   今晚可以打老虎  阅读(519)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示