2.仓库
任何一个依赖、插件或者项目构建的输出,都可以称为构件。
2.1 仓库的布局
groupId/artifactId/version/artifactId-version.packaging
2.2 仓库的分类
对Maven来说,仓库只分为两类:本地仓库和远程仓库。
Maven仓库->|
|->本地仓库
|->远程仓库->|
|->中央仓库
|->私服
|->其他公共库
① 本地仓库的配合 ~/.m2/setting.xml
<localRepository>E:/m2re</localRepository>
② 远程仓库的配置 pom.xml
<repositories> <repository> <id>jboss</id> <name>JBoss Repository</name> <url>http://repository.jboss.com/maven2/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
releases、snapshots的其他标签
<snapshots>
<enabled>false</enabled>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>ignore</checksumPolicy>
</snapshots>
updatePolicy 配置从远程仓库检查更新的频率。默认daily,每天一次。
never - 从不检查更新
always - 每次构件都检查
interval:X - 每隔X分钟检查一次(X任意整数)
checksumPolicy
用来配置Maven检查检验和文件的策略。
默认 warn, Maven会在执行构建时输出警告信息。
fail - Maven遇到校验和错误就让构件失败。
2.3 部署至远程仓库
参考部署至私服 nexus(仓库配置和认证信息)。
2.4 镜像
</mirrors> <mirror> <id>nexus</id> <mirrorOf>*</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://localhost:8081/nexus/content/groups/public/</url> </mirror> </mirrors>
镜像高级配置:
<mirrorOf>*</mirrorOf> : 匹配所有远程仓库。
<mirrorOf>external:*</mirrorOf> : 匹配所有远程仓库,使用localhost除外,使用file://协议的除外。即皮蓬所有不在本机上的远程仓库。
<mirrorOf>repo1,repo2</mirrorOf> : 匹配仓库repo1和repo2。
<mirrorOf>*,!repo1</mirrorOf> : 匹配所有远程仓库,repo1除外。
由于镜像仓库完全屏蔽了被镜像仓库,当镜像仓库不稳定或者停止服务的时候,Maven仍将无法访问被镜像仓库,因而将无法下载构件。
学习资料: 《maven实战》
(图片来源网络!)