maven mirror , profile , snapshot 和release

时间:2022-04-19 10:52:14

1. settings.xml 配置的mirror

 <mirrors>
<mirror>
<id>Nexus</id>
<name>nexus</name>
<url>http://10.188.2.222:8080/nexus/content/repositories/central/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>

pom.xml 配置

<repositories>
<repository>
<id>local-nexus</id>
<url>https://maven.alfresco.com/nexus/content/repositories/activiti</url>
</repository>
</repositories>

如果pom 中没有配置 repositories ,则maven 在下载dependency 依赖的时候回直接从central仓库下载,由于配置镜像,则从镜像地址下载

如果pom 中配置了repository : id = settings.xml 配置的mirrorOf ,则仍然从镜像下载,如果repository 的ID和 mirrorOf 不相等,则先从该仓库下载。

2. profile 是maven实现多配置信息 。如一些变量,则可以再pom 文件中引用变量,从而实现动态配置。具体用法百度参考

3. snapshot 为开发过程产生的。由于maven 机制是先从本地仓库下载,如果没有,再从远程下载。如果一个包被下载后,远程上的包发生了更改,本地是不会主动下载的,处于开发过程中的包是很容易

出现此种情况的,导致 B 发布了最新的包,但是版本号等信息没有变动,A 本地已经有了,不会更新,导致A无法获取最新的包。。但是如果B发布的包是 snapshot(只需包版本号后加上-SNAPSHOT) 的则

A 就会自动下载最新的包(updatePolicy四种下载方式:属性有四个值always(实时更新) daily(每天更新) interval:xxx(隔xxx分钟更新一次)  never(从不更新) 默认为daily)

其他方式 : install -U  -U 可以强制更新依赖

4. 如果没有提供私服。。可以在 profile 中 配置多个 repository 仓库 加快下载jar包速度。