Maven仓库
Maven仓库有三种类型
-
本地
Maven 的本地仓库,在安装 Maven 后并不会创建,它是在第一次执行 maven 命令的时候才被创建。
-
中央
Maven 中央仓库是由 Maven 社区提供的仓库,其中包含了大量常用的库。
-
远程
开发人员自己定制仓库,包含了所需要的代码库或者其他工程中用到的 jar 文件。
私服
私服是一种特殊的远程仓库,它是架设再局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用,当Maven需要下载构建的时候,它从私服中请求,如果私服上不存在该构建,则从外部的远程仓库中下载,缓存再私服上之后,再为Maven的下载请求提供服务。此外,一些无法从外部仓库下载到的构建也能从本地上传到私服上供大家使用。
私服的好处
- 节省自己的外网带宽
- 加速Maven构建
- 部署地三方构件
- 提高稳定性,增强控制
- 降低中央仓库的符合
远程仓库的配置
在很多情况下,默认的中央仓库无法满足项目的需求,可能项目需要的构建存在于另外一个远程仓库中,这样可以在settings.xml中配置该仓库,也可在pom.xml中配置,如果一个settings中的profile被激活,它的值会覆盖任何其它定义在POM中或者profile.xml中的带有相同id的profile。
settings.xml配置如下
<profile>
<id></id>
<repositories>
<repository>
<id>snapshot-repo</id>
<url>url</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
远程仓库认证
出于安全方面的考虑,我们需要提供认证信息才能访问一下远程仓库。认证信息必须配置在settings.xml中,在settings.xml中配置会更为安全。
配置如下
<servers>
<server>
<id>s3s3l-snapshot</id><!--这里的id是repository的id-->
<username>username</username>
<password>password</password>
</server>
</servers>
部署至远程仓库
Maven除了能对项目进行编译,测试打包之外,还能将项目生成的构建部署到仓库中。首先,需要编辑项目的pom.xml文件。配置distibutionManagement,往远程仓库部署构建的时候,通常需要认证,认证方式与上述一致。
<distributionManagement>
<repository><!--表示发布版本构件的仓库-->
<id></id>
<name></name>
<url></url>
</repository>
<snapshotRepository><!--表示发布快照的版本-->
<id></id>
<name></name>
<url></url>
</snapshotRepository>
</distributionManagement>
快照版本
在Maven中,仍和一个项目或者构件都必须有一个自己得版本。快照版本就是为了解决版本更新频繁但是版本之间差异很小得时候,防止对版本号得滥用,以及解决协作开发繁琐得操作。
Maven会为每个快照版本打上一个时间戳,使得每次下载构件得时候都是最新版本。
快照版本只应该在组织内部得项目或者模块间依赖使用。