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>
相关推荐
JH30739 小时前
SpringBoot 优雅处理金额格式化:拦截器+自定义注解方案
java·spring boot·spring
CHHYQMGDCDZu9 小时前
光伏系统参数
maven
Coder_Boy_10 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
invicinble10 小时前
对tomcat的提供的功能与底层拓扑结构与实现机制的理解
java·tomcat
较真的菜鸟10 小时前
使用ASM和agent监控属性变化
java
黎雁·泠崖11 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
qq_124987075312 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
Coder_Boy_12 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
Mr_sun.12 小时前
Day06——权限认证-项目集成
java
瑶山12 小时前
Spring Cloud微服务搭建四、集成RocketMQ消息队列
java·spring cloud·微服务·rocketmq·dashboard