利用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把私有仓库架设在局域网或者服务器上,通过平台管理依赖,可以下载依赖,可以发布依赖,避免了因本地环境发生变化而重新下载依赖,是团队开发提高效率的利器。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 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)