仓库:在某个位置统一存储所有maven项目共享的构件,这个统一的位置就是仓库。
分类:
本地仓库:
<settings>
<localRepository>D:/maven/maven3.5/repository3.5</localRepository>
</settings>
中央仓库:默认位置maven-model-builder-3.5.0中org/apache/maven/model/pom-4.0.0.xml文件。
<repositories>
<repository>
<id>central</id>//唯一标识
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>//链接
<layout>default</layout>//仓库布局
<snapshots>//是否使用快照
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
私服:是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程服务,供局域网内的maven用户使用
优点:节省外网带宽/加速maven构建/部署第三方构件/提高稳定性,增强控制/降低中央仓库的负荷。
<project>
<repositories>
<repository>
<id>jboss</id>//唯一标识
<name>JBoss Ropository</name>
<url>http://repository.jboss.com/maven2/</url>//链接
<releases>//是否发布版本下载支持
<enabled>true</enabled>
</releases>
<snapshots>//是否快照版本支持
<enabled>false</enabled>
</snapshots>
<layout>default</layout>
</repository>
</repositories>
</project>
对于releases和snapshots还包括连个属性:
updatePolicy:daily-每天检查一次;never-从不检查更新;always-每次构建都检查更新;interval:每隔几分钟查询一次。
checksumPolicy:warn/fail/ignore
远程仓库的认证:
<settings>
<servers>
<server>
<id>deploymentRepo</id>//不许和repository配置的id一致
<username>repouser</username>
<password>repopwd</password>
</server>
</servers>
</settings>
镜像:仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像。
<settings>
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf> //表示为中央仓库的镜像
</mirror>
</mirrors>
</settings>
<mirrorOf>*</mirrorOf>:匹配所有远程仓库
<mirrorOf>external:*</mirrorOf>:匹配所有远程仓库,使用localhost的除外
<mirrorOf>repo1,repo2</mirrorOf>:匹配repo1,repo2
<mirrorOf>*</mirrorOf>:匹配所有远程仓库
<mirrorOf>*,!repo1</mirrorOf>:匹配所有远程仓库,repo1除外