maven仓库相关:
本地仓库:
可以在 setting.xml 中配置 本地仓库的地址
<settings> <localRepository>D:\java\repository\</loaclRepository> </settings>
远程仓库:不在本地,从远程获取构件。
中央仓库: 默认的远程仓库,http://search.maven.org/
私服: 特殊的远程仓库。
使用私服的好处:节省自己的带宽;加速Maven构建;部署第三方构件(无法从任何一个外部远程仓库获取的);
提高稳定性,增强控制,一些私服软件(如 Nexus)提供很多额外的功能,如权限管理,RELEASE/SANPSHOT区分等;
降低中央仓库负荷。
远程仓库的配置:
<repositories>
声明一个或多个仓库:repository
<repository>
<id>jboss</id><name>JBoss Repository</name>
<url>...</url>指向仓库地址
<releases><enabled>true</enabled></releases> //开启仓库发布版本下载支持
<sanpshots><enabled>false</enabled>//关闭仓库的快照版本下载支持
<updatePolicy>更新策略
可选值: daily(默认):每天检查一次;never:从不检查;always:每次构建都检查;interval:X : 每隔X分钟检查一次更新(X为任意数)
</updatePolicy>
<checksumPolicy>检查验证和文件的策略
可选值:warn(默认):执行构建是输出警告信息;fail:遇见校验和错误就让构建失败;ignore:完全忽略校验和错误;
</checksumPolicy>
</sanpshots>
<layout>default</layout>
</repository>
</repositories>
远程仓库的认证:
配置在 setting.xml 中,如下:
<settings>
...
<servers>
<server>
<id>my-proj</id> id必须与pom中需要认证的 repository元素的id相同
<username>repo-user</username> <password> repo-pwd</password>
</server>
</servers>
...
</settings>
部署至远程仓库:
需要配置 pom.xml 的 distributionManagement 元素
<distributionManagement>
<repository> 发布版本构件
<id>proj-release</id>
<name>Proj Release Repository </name>
<url> http://ip//..</url> 仓库地址
</repository>
<snapshotRepository> 快照版本构件
<id>proj-snapshot</id>
<name>Proj Sanpshot Repository</name>
<url> http://ip//..</url>
</snapshotRepository>
</distributionManagement>
配置正确后,运行:mvn clean deploy ;
快照版本:
从仓库解析依赖的机制: mvn clean install-U 强制让maven更新
如果依赖声明配置的是 Release(不推举) 、 latest (不推举) 、Snapshot , Maven检查更新的时候,都会检查仓库的元数据
groupId/artifactId/version/maven-metadata.xml ,计算出更新的版本。
镜像:
配置在 setting.xml 中
<settings>
...
<mirrors>
<id>maven.net.cn</id>
<name>one of the central mirrors in China </name>
<url>http://...</url>
<mirrorOf>
* / external:* / repo1,repo2 / *,!repo1 /
</mirrorOf>
</mirrors>
...
</settings>
仓库搜索:
SonaType Nexus : http://repository.sonatype.org/
Jarvana : http://www.jarvana.com/jarvana/
MVNbrowser : http://www.mvnbrowser.com
MVNrepository : http://mvnrepository.com/