maven远程仓库配置及含义解释

news/2024/11/16 2:32:45/文章来源:https://www.cnblogs.com/gaoguanghui/p/18383784

0 下载依赖的过程

1 默认情况下maven会去中央仓库central找依赖或插件

  • 无需额外配置

2 配置多个repository仓库时会先查找central仓库再依此查找多个repository仓库

  • 需要配置
<profile><id>myprofile1</id><!--依赖仓库配置--><repositories><!--配置一个依赖仓库--><repository><!--可以被mirrorOf拦截的id--><id>myrepo1</id><!--备注信息--><name>xxx</name><url>https://xxx.xxx.xxx.xxx/xxx/xxxx</url><!--允许从此仓库中下载realease版本依赖--><releases><enabled>true</enabled></releases><!--允许从此仓库中下载snapshot版本依赖--><snapshots><enabled>true</enabled></snapshots></repository><!--配置一个依赖仓库--><repository><id>myrepo2</id><name>xxx</name><url>http://xxx.xxx.xxx/xxx/xxx</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories><!--插件仓库配置--><pluginRepositories><!--配置一个插件仓库--><pluginRepository><!--可以被mirrorOf拦截的id--><id>myrepo1</id><name>xxx</name><url>https://xxx.xxx.xxx.xxx/xxx/xxxx</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></pluginRepository><!--配置一个插件仓库--><pluginRepository><id>myrepo2</id><name>xxx</name><url>http://xxx.xxx.xxx/xxx/xxx</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></pluginRepository></pluginRepositories>
</profile>
<!--使配置生效的两种方式-->
<!--方式一(要放在profile标签里面的id标签同级的位置)-->
<activation>  <activeByDefault>true</activeByDefault>  
</activation><!--方式二-->
<activeProfiles><!--允许配置多个activeProfile--><activeProfile>myprofile1</activeProfile>
</activeProfiles>

3 配置mirror仓库时会拦截指定的查找请求转向自身

  • 需要配置
<mirror>  <id>myrepo01</id><!--备注信息--><name>xxx</name><!--拦截对中央仓库的请求--> <mirrorOf>central</mirrorOf><url>https://xxx.xxx/xxx/xx/xx/xx/xx</url>
</mirror>
<mirror>  <id>myrepo02</id><!--备注信息--><name>xxx</name><!--拦截对myrepo1仓库的请求--><mirrorOf>myrepo1</mirrorOf><url>http://xxx.xx/xxx/x/x/x/x</url>
</mirror>

*注意 mirrorOf支持通配符

<!--出现如下配置时 当去central下载依赖或插件时会被<mirrorOf>central</mirrorOf>所在的mirror仓库拦截(类似java重载 匹配更精确的)-->
<mirrorOf>*</mirrorOf>
<mirrorOf>central</mirrorOf>

4 建议配置方案
配置一个中央仓库的mirror仓库
配置一个repository仓库作为私服
5 上传jar包到repository仓库

  • 1~4的配置仅对下载jar包有效,对上传jar包无效
  • 上传的配置需要配置在项目的pom.xml中(在父pom中配置即可)
  • 标签配置在project标签下
<distributionManagement><!--指定release版本的jar包上传地址--><repository>  <id>mydeployrepo1</id>  <name>xxx</name>                                                  <url>http://xxxxx.xxx.x/xxx</url>  </repository><!--指定snapshot版本的jar包上传地址-->  <snapshotRepository>  <id>mydeployrepo2</id>  <name>xxx</name>  <url>http://x.xx.xxx.xxxxx/xxx</url>  </snapshotRepository>  
</distributionManagement>  

6 上传jar包一般需要账号密码

  • 密码配置(配置在settings.xml中)
<servers><server><!--上传jar包需要账号密码时会根据id获取,因此要保证上传地址的id与密码的id一致--><id>mydeployrepo1</id><username>myaccountxx</username><password>xxx</password></server><server><id>mydeployrepo2</id><username>myxxaccount</username><password>xxxxx</password></server>
</servers>

7 其他注意事项

  • 以上的这些配置中id标签必须配置
  • 以上的这些配置中name标签可以不配置(类似备注信息,没有太大作用)

8 待整理杂项
maven中央仓库
https://repo.maven.apache.org/maven2/ (默认使用)
https://repo1.maven.org/maven2/

阿里云仓库
https://maven.aliyun.com/repository/public
https://maven.aliyun.com/nexus/content/groups/public/

华为云仓库
https://repo.huaweicloud.com/repository/maven/
https://mirrors.huaweicloud.com/repository/maven/

腾讯云仓库
http://mirrors.cloud.tencent.com/nexus/repository/maven-public/

清华大学仓库
https://repo.maven.apache.org/maven2/

complie---------fastjson.jar complie阶段可参与、test阶段可参与、package阶段可参与、运行时参与

runtime---------mysql-connection-java.jar
complie阶段不可参与、test阶段可参与、package阶段可参与、运行时参与

provided----------servlet-api.jar
complie阶段可参与、test阶段可参与、package阶段不可参与、运行时参与

test-------------junit.jar
complie阶段不可参与、test阶段可参与、package阶段不可参与、运行时不参与

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/788329.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

迁移Swift项目到OC项目

文件迁移我直接把GuitarTunerApp文件夹迁移过去了 直接运行,提示 2个问题: 2.我们在我们先解决第2个,选择swift的版本: 选择项目文件,然后选择你的目标(Target)。 点击 "Build Settings" 选项卡。 确保 Swift Compiler - Language 下的 Swift Version 设置正确,…

Spring Boot+Dubbo

介绍Dubbo是阿里巴巴公司开源的一个高性能、轻量级的 Java RPC 框架。Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的 Apache 项目。这里是需要使用到Zookeeper的,可以理解为Nacos和OpenFeign,需要把不同的服务注册到Zookeeper然后不同服务之间需要相互调用,则…

3.外设GPIO、中断

GPIO:通用输入输出端口GPIO特点:1.快速翻转,每次翻转最快只需要两个时钟周期(F1最高速度可以到50Mhz)2.每个IO口都可以做中断3.支持8种工作模式GPIO电气特性:STM32工作电压范围:2 V ≤ VDD ≤ 3.6 VGPIO识别电压范围:  COMS端口:-0.3V ≤ VIL ≤ 1.164V(0);1.833V …

桌面软件/exe程序软件自动化大宝剑--lackey之初识

C/S架构端下的软件在IT发展长河中,渐渐的在大多数从业者已经淡忘。现有的PC端上的软件 也是在极力的前浪推后浪,更新替代一些老派的语言追寻潮流。互联网的软件开发就是IOT,HTTPclient ,鲜有 exe的桌面软件;某也喜欢追新潮学互联网技 术,自动化就接触APP WEB API并使用网…

全网最适合入门的面向对象编程教程:40 Python常用复合数据类型-枚举和enum模块的使用

在 Python 中,枚举(Enumeration, Enum)是一种复合数据类型,用于表示一组相关但不同的常量值。枚举类型允许我们使用人类可读的名称代替代码中的魔法数字或字符串,Python 提供了 enum 模块来实现枚举类型。全网最适合入门的面向对象编程教程:40 Python 常用复合数据类型-…

rn node 版本问题

报错信息:Command PhaseScriptExecution failed with a nonzero exit codeFailed to construct transformer: Error: error:0308010C:digital envelope routines::unsupportedat new Hash (node:internal/crypto/hash:79:19)at Object.createHash (node:crypto:139:10)at sta…

替代BeyondCompare,四款免费文件代码对比工具分享

Beyond Compare是一套内容比较工具软件。除了可以作文件比较以外,还可以比对文件目录、FTP目录及压缩包案的内容等,但是由于要收费且比较贵,很多公司也在规避工作电脑使用非授权软件的风险,所以分享四款平替Beyond Compare的文件代码对比软件工具。1、WinMerge WinMerge是一…

替代BeyondCompare,免费四款文件代码对比工具分享

Beyond Compare是一套内容比较工具软件。除了可以作文件比较以外,还可以比对文件目录、FTP目录及压缩包案的内容等,但是由于要收费且比较贵,很多公司也在规避工作电脑使用非授权软件的风险,所以分享四款平替Beyond Compare的文件代码对比软件工具。1、WinMerge WinMerge是一…

markdown格式测试

Editor.md hhh换行TEST 1 2 3 a bq d HEAD TEST Smart Test ...--目录 (Table of Contents) [TOCM] 目录Editor.md换行TESTHEAD TESTSmart TestHeading 1Heading 2Heading 3Heading 4Heading 5Heading 6Heading 1 link Heading linkHeading 2 link Heading linkHeading 3 link …

一图速览9种API接口测试

一图速览9种API接口测试,大家都懂了吗?值得收藏!

Serilog文档翻译系列(一) - 入门指南

保持优质文档是 Serilog 的优先事项。如果你发现文档中有缺失或不准确的内容,或者希望通过添加主题或教程来扩展 wiki,请通过问题追踪系统告知我们。 为什么选择Serilog? 与许多其他 .NET 库一样,Serilog 提供了基本的诊断日志记录功能,支持文件、控制台等多种方式。它易于…

数据分析1

数据分析:是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律数据分析三剑客:Numpy,Pandas,MatplotlibNumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。一、…