Nexus的Maven私有仓库搭建

Nexus的maven私有仓库搭建

一、了解 maven仓库设置

默认设置

其中:

  • maven-central: 预定义的代理Maven Central仓库,它包含了大量的开源Java依赖包。
  • maven-public: 存储库是一个组合存储库,它包含了maven-releases和maven-snapshots存储库的内容。在Maven项目中使用Nexus 3作为私有仓库时,可以将maven-public存储库配置为Maven项目的主要仓库。
  • maven-releases: 存储库用于存储已经发布的Maven依赖包,我们可以设置为需要登录才可以访问,并发布一些团队的工具包等。
  • maven-snapshots: 存储库用于存储快照版本的Maven依赖包,一般快照包,我们在开发过程中频繁更改或更新。

但是官方默认是maven2的版本,我们可以删除并添加自己的maven3仓库。

二、新建数据存储

选择file文件存储,并自定义名称

进入相对路径下查看文件夹是否创建成功

三、创建镜像maven3仓库

创建maven3仓库,create repository创建maven-central:

创建maven3(proxy),选择镜像中心,这里选择的是阿里云的镜像

其他的仓库:

创建maven Group进行归纳镜像仓库 maven-public,并把刚才建立的仓库加入:

接下来创建release和snapshot的私有库(maven-hosted):

  • 区分release和snapshot的话,使用version policy进行区分

在group中进行导入

四、本地地址接入

复制地址:

假设,你复制的URL为:

复制代码
http://nexus.example.com/repository/maven_public/

那么,你可以在项目的pom.xml内直接添加我们的仓库地址:

复制代码
<repositories>
  <repository>
    <!-- ID可以自定义,但是要全局唯一 -->
    <id>nexus_public</id>
    <url>http://nexus.example.com/repository/maven_public/</url>
  </repository>
</repositories>

使用maven的插件进行构建(如:mvn clean、mvn install),再添加pluginRepository节点:

复制代码
<pluginRepositories>
    <pluginRepository>
        <!-- ID可以自定义,但是要全局唯一 -->
        <id>nexus_public</id>
        <name>mirror_from_nexus</name>
        <url>https://nexus.pluviose.eu.org/repository/maven_public/</url>
    </pluginRepository>
</pluginRepositories>

这样,在maven进行项目依赖包下载时候,会优先到repositories内寻找,找不到,再到全局settings.xml内寻找;所以,你也可以在全局setting.xml内添加上述操作。

当然,在全局内操作,很多人会直接重定向mirror:

复制代码
<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">
<localRepository>E:\myDataBase_maven_aliyun</localRepository>
  <mirrors>
    <mirror>
      <id>maven_public</id>
      <name>maven_public</name>
      <url>http://ip/repository/maven_public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>
</settings>

pom文件打上坐标,重新构建maven

Nexus上也上传了项目jar包

私有仓库发布

Nexus上定义release和snapshot之后,需要对releasesnapshot有读写权限的用户

管理员默认拥有全部权限

在本地maven的全局配置settings.xml内,添加用户的密码:

复制代码
<servers>
    <server>
        <id>nexus_release</id>
        <username>admin</username>
        <password>passwordForAdmin</password>
    </server>
</servers>

注意id相互对应

在项目的pom.xml内,配置上对应的release:

复制代码
<distributionManagement>
    <repository>
        <id>nexus_release</id>
        <url>http://nexus.example.com/repository/maven_release/</url>
    </repository>
</distributionManagement>
        <id>nexus_release</id>
        <url>http://nexus.example.com/repository/maven_release/</url>
    </repository>
</distributionManagement>
相关推荐
CodeCraft Studio10 小时前
【金融行业案例】基于Vaadin全栈Java框架重构内部系统,全面提升开发效率与用户体验
java·金融·重构·vaadin·银行内部系统·纯java开发框架·java web框架
潇I洒10 小时前
Linux写sh开机启动脚本-bash报错的两种解决方法
java·linux·bash
R.lin10 小时前
使用注解将日志存入Elasticsearch
java·大数据·后端·elasticsearch·中间件
滴滴滴嘟嘟嘟.11 小时前
全屏定时提醒工具
java·开发语言
せいしゅん青春之我11 小时前
【JavaEE初阶】网络原理——TCP处理先发后至问题
java·网络·笔记·网络协议·tcp/ip·java-ee
星星落进兜里11 小时前
Spring全家桶面试题, 只补充细节版本
java·后端·spring
用户61204149221312 小时前
使用JSP+Servlet+JavaBean做的课程后台管理系统
java·javascript·mysql
乌暮12 小时前
数据库--JDBC编程
java·数据库·学习
小白黑科技测评12 小时前
2025 年视频去水印工具实测:擦擦视频双版本解析一键去字幕与多格式兼容能力
java·人工智能·音视频·智能电视·1024程序员节
华仔啊12 小时前
Go 语言未来会取代 Java 吗?别争了,先看完这篇再说
java·后端·go