Maven 存储库主要是存放一些第三方依赖jar包等。
严格来说,只有两种存储库:本地和远程,本地存储库是指您远程下载到本地的一个缓存,还包含尚未发布的临时构建文件。远程存储库是指一些可以通过各种协议如file://或http://并下载的远程存储库(例如,repo.maven.apache.org和uk.maven.org中的 Maven中央存储库)。其他“远程”存储库可能是在公司内的文件或HTTP服务器上设置的内部存储库,用于在开发团队和发布之间共享私人工件,也可以称为私服。
内部存储库
内部存储库也可以称为私服,在使用Maven中,特别是在企业环境中,连接到互联网下载依赖对于安全性,速度或宽带是不能确保的。出于这个原因,最好设置一个内部存储库(私服)来存放工件副本,并发布专用工件。
这种内部存储库可以使用HTTP或文件系统(使用file://url)下载,并上传到使用SCP,FTP或文件副本。
设置内部存储库
设置内部存储库只需要你有一个放置它的位置,并按照远程存储库相同的布局(例如:repo.maven.apache.org)复制所需要的工件。
不建议你使用rsync://复制中央仓库完整的库,推荐你使用资源管理服务器(例如:Sonatype Nexus OSS ,JFrog Artifactory Open Source ,Apache Archiva 等开源项目),然后在内部资源库中保存工件以便稍后快速下载。
使用内部存储库
使用内部存储库非常简单,只需要在POM中添加repositories标签即可,如下所示:
1 <project> 2 ... 3 <repositories> 4 <repository> 5 <id>my-internal-site</id> 6 <url>http://myserver/repo</url> 7 </repository> 8 </repositories> 9 ... 10 </project>
如果你的内部存储库需要使用身份认证,则需要在你的settings文件中使用id来指定登录信息。
本地存储库
通常我需要将自己的项目部署到本地存储库进行共享,是其他项目可以直接就访问到该项目,只需要简单如下操作:
mvn install
这个命令可以将本地的项目打包放到本地存储库中。
远程存储库
如果想将本地项目部署到远程仓库,这里指的是私服,可以通过如下命令:
mvn deploy