一、nexus工作原理图

私服搭建,可以参考下面链接:

搭建Maven私服Nexus3_石工记的博客-CSDN博客

二、项目配置注意事项(两个配置)

1.maven中settings的两个配置:添加<server/>(不必需项)和<mirror/>(必需项)

1.1 settings中<server/>配置

<server>

<id>nexus<id/>

<username>admin</username>

<password>admin<password/>

<server/>

1.2 settings中<mirror/>配置

<mirror> 
        <id>nexus-releases</id> 
        <name>nexus-releases</name> 
        <url>https://127.0.0.1:8081/repository/maven-releases/</url>
        <mirrorOf>central</mirrorOf> 
    </mirror>

2.项目的pom.xml配置<distributionManagement/>

2.1 settings配置<server/><mirror>(如果上述配置,此项可以略过)

<server>

<id>nexus<id/>

<username>admin</username>

<password>admin<password/>

<server/>

<mirror> 
        <id>nexus-releases</id> 
        <name>nexus-releases</name> 
        <url>https://127.0.0.1:8081/repository/maven-releases/</url>
        <mirrorOf>central</mirrorOf> 
    </mirror>

2.2 <distributionManagement/>,项目打包上传到私服(必配置)

2.2.1配置前置

在nexus中的maven-releaser中hosted选项配置为Allow redeply,如下图

2.2.2当项目打包部署到nexus时,配置pom.xml中<distributionManagement/>选项,选项中添加nexus中的id、name、url,其中<distributionManagement/>中<repository/>的id必项与settings.xml中<server/>是ID相同,否则会失败,包上传不到私服中

<repository><id>nexus</id><name>Release Repository</name><url>https://127.0.0.1:8081/repository/maven-releases/</url>
</repository>

三、访问权限优先顺序

1.maven仓库配置
仓库优先级为:本地仓库(localRepositories) > profile中的repositories仓库 > POM > mirrors全局仓库

2.repositories配置
repositories指定jar包下载的地点,可以是多个。

repositories可以通过setting.xml方式配置,会对所有maven项目生效,也可只在本项目pom.xml中配置一个maven仓库标签来实现。

当在自己的maven项目的pom.xml中添加如下配置。

<repositories>
  <repository>
    <id>aliyun-releases</id>
    <name>阿里云仓库(name可以随便起)</name>
    <url>https://maven.aliyun.com/repository/public</url>
  </repository>
</repositories>
这时候,maven会优先采用这个配置,而不会去读setting.xml中的配置了。这样配置好后,maven就会自动从aliyun下载jar包了。

repositories标签下可以配置多个repository,如果我们配置了多个repository,maven会用哪个呢,答案是按出现顺序使用,如果第1个可用,就用第一个,如果不可用,就依次往下找,下面的2张图片可以说明这个问题。

3.mirror配置
<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <!--mirrorOf的配置很重要后面会详细说明-->
  <mirrorOf>central</mirrorOf>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
如上配置,maven会读取setting.xml中配置的mirror作为jar包的下载地址。

3.1为什么呢?
因设置的mirrorOf为<mirrorOf>central</mirrorOf>,如果<mirrorOf></mirrorOf>我随便设置一个参数,如<mirrorOf>abc</mirrorOf>,这时候我们配置的仓库就不起作用了,这是因为maven默认内置了如下一个仓库,这个默认仓库的id为central,当我们把mirrorOf设置为<mirrorOf>central</mirrorOf>时,maven就会查找有没有id为central的仓库,然后把id为central的仓库地址换成我们<mirror>标签配置的那个url,这样我们配置的mirror才会起作用。当然我们也可以把mirrorOf设置为<mirrorOf>*</mirrorOf>,表示所有仓库都使用我们配置的这个mirror作为jar包下载地址。

3.2 怎么样

根据官方的描述,mirrorOf相同的情况下,仅会选择靠前的镜像,当jar包下载失败后,是不会去第2个镜像下载的。那官方又说了若要使用多个仓库,请改用存储库管理器,什么是存储库管理器?也就是maven私服,这里不展开讲它的作用。然后又有人使用了另外的配置来解决

<!-- settings.xml -->
<mirror>
  <id>aliyun</id>
  <mirrorOf>central</mirrorOf>   
  <name>aliyun</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

<!-- pom.xml -->
<repositories>
    <repository>
        <id>wso2</id> <!-- id可以随便取,只要不重名即可 -->
        <url>https://dist.wso2.org/maven2/</url>
    </repository>
    <repository>
        <id>hortonworks</id>
        <url>https://repo.hortonworks.com/content/repositories/releases/</url>
    </repository>
</repositories>

4.哪mirrorOf与mirrorOf有什么关联呢?
<repository>时<id>似乎也没什么用,确实是,如果你只是在pom.xml中配置个仓库,这个id是没什么用的,可以随便写。

其实这个id是配合上面讲的mirror一块使用的,还记得mirrorOf吗,我们配置mirrorOf为<mirrorOf>central</mirrorOf>是,mirror中的url会将默认的central仓库的url给覆盖了,所以这里的<repository>标签下的id是给mirrorOf用的。

当repository中的id与mirrorOf一致时,mirrorOf中的url就会覆盖repository中的url地址。

nexus工作原理及项目配置注意事项相关推荐

  1. Nginx 反向代理工作原理简介与配置详解

    Nginx 反向代理工作原理简介与配置详解 测试环境 CentOS 6.8-x86_64 nginx-1.10.0 下载地址:http://nginx.org/en/download.html 安装 ...

  2. Nginx 教程(一)-- 工作原理及安装配置

    Nginx简介 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在一个BSD-like协议下发行,由俄罗斯人IgorSysoev开发,共俄罗斯大型的搜索 ...

  3. 布袋除尘器有关matlab编程,布袋除尘器工作原理结构图及使用注意事项

    布袋除尘器工作原理结构图及使用注意事项 布袋除尘器工作原理: 除尘器由灰斗.上箱体.中箱体.下箱体等部分组成,上.中.下箱体为分室结构.工作时, 含尘气体由进风道进入灰斗,粗尘粒直接落入灰斗底部,细尘 ...

  4. AVB源码学习(一):AVB2.0工作原理及编译配置

    参考资料 感谢前辈的blog,安全相关的资料可太少了,很详细很卓越 https://blog.csdn.net/jackone12347/article/details/116241676 前言 在这 ...

  5. android AVB2.0(一)工作原理及编译配置

    android AVB2.0介绍,本篇主要介绍AVB2.0的概述和工作原理.配置和编译. 有关AVB2.0的其他子系统的介绍,请查看android AVB2.0学习总结 一.AVB2.0概述 什么是A ...

  6. 华为 静态NAT---动态NAT---NAPT---Easy IP---NAT服务器工作原理和示例配置

    目    录 一.NAT简介 二.NAT好处: 三.静态NAT工作原理和示例配置 1. 静态NAT工作原理 2. 静态NAT配置示例 四.动态NAT工作原理和示例配置 1. 动态NAT工作原理 2.动 ...

  7. 网络流量分析利器-可视化网络-netflow【2】-Cisco NetFlow 工作原理介绍及配置

    拓扑图 NetFlow监控涉及到的设备: 被监控的交换机(也可能是镜像服务器)和收集器(监控软件所在的设备) 工作原理: NetFlow使用流(flow)来完成统计数据.网络监控,甚至网络规划.流有方 ...

  8. zookeeper工作原理、安装配置、工具命令简介

    1 Zookeeper简介 Zookeeper 是分布式服务框架,主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等等. ZooK ...

  9. java 工作池_Java线程池的工作原理,好处和注意事项

    线程池的工作原理 一个线程池管理了一组工作线程, 同时它还包括了一个用于放置等待执行 任务的任务队列(阻塞队列) . 一个线程池管理了一组工作线程, 同时它还包括了一个用于放置等待执行 任务的任务队列 ...

最新文章

  1. 《BBN: Bilateral-Branch Network with Cumulative Learning for Long-Tailed Visual Recognition》笔记
  2. sql server排序慢_用Nginx实现接口慢查询并可示化展示TOP 20
  3. androidstuido_schooltest_8_Network
  4. GDCM:gdcm::SplitMosaicFilter的测试程序
  5. boost::callable_traits的remove_member_reference_t的测试程序
  6. 定时任务提交spark到yarn出现一直accepted以及yarn出现unhealthy情况
  7. qt开发环境 - 丑陋的串口助手
  8. Eclipse将引用了第三方jar包的Java项目打包成jar文件
  9. Oracle 数据怎么实时同步到 Elasticsearch | 亲测干货建议收藏
  10. ARP监听渗透内网的方法
  11. think in java第6_think-in-java/6.5 protected.md at master · quanke/think-in-java · GitHub
  12. java开发异常Exception集锦
  13. truffle version/usr/local/lib/node_modules/truffle/build/385.bundled.js:65232 catch cli.bundled.js:6
  14. C1认证学习笔记(第一章)
  15. ajax速度axio速度,axio跨域请求,vue中的config的配置项。
  16. nginx配置主域名跳转www域名并支持ssl
  17. 苹果手机屏幕尺寸_Apple 苹果 iPhone SE2智能手机屏幕测评报告 「Soomal」
  18. shape (0,) 是什么意思
  19. 初学者如何3步入门选吉他,附上新手购琴常见问题和吉他品牌推荐
  20. SD从零开始38-40

热门文章

  1. 程序员10年职业规划
  2. 今晚直播,带你测试MySQL中间件的性能
  3. 有HDR的功能的显示器和没有HDR的显示器区别大吗
  4. 陕西省ti杯竞赛题目_TI杯竞赛实施过程说明
  5. 计算机常识--Linux篇
  6. IDEA+Marven 整合ssm框架实现
  7. Pandas数据结构分析
  8. tapora true
  9. Zabbix监控平台安装教程,Zabbix入门教程
  10. 域登录缓存mscash