Maven中的本地仓库和远程仓库是什么意思?

5

我正在阅读Maven - The complete reference,并遇到了以下内容

Maven假定父POM可从本地存储库获取,或者在当前项目的父目录(../pom.xml)中可用。如果这两个位置都无效,则可以通过relativePath元素覆盖此默认行为。

对于Maven安装和项目,本地和远程存储库具体指什么?

3个回答

7
本地仓库是一个本地目录结构,它缓存了从远程仓库下载的构件或手动安装的构件(例如通过命令行选项)。
远程仓库是一个 Web 服务(由 URL 定义),其中包含版本化的构件。这可能只是一个 Apache 服务器,或者是一个完整的 Maven 仓库,如 Artifactory,它允许上传、基于用户目录的权限等。

http://maven.apache.org/guides/introduction/introduction-to-repositories.html


3
默认情况下,Maven会从本地的.m2仓库获取依赖,并将依赖安装到该仓库中。这是一种优先规则,你的.m2就像一个缓存,Maven可以在远程下载依赖之前从中获取依赖。你可以通过以下方式绕过此行为:mvn -U ...(参见mvn --help)。
在Windows上,你的本地.m2位于C:\Users\{user}\.m2,在Linux上则位于/home/{user}/.m2。如果执行mvn install,则你的项目将被安装到该.m2仓库中。
远程仓库是一个Maven仓库,就像你的本地.m2仓库一样,用于供你获取依赖,例如Maven Central

0

本地存储库是一个repo。当您编译或安装项目时,所有所需的依赖项都会下载到您的本地repo中。

当您使用项目时,Maven首先尝试从本地获取依赖项。如果不可用,则Maven将尝试从中央存储库下载依赖项。

中央存储库是由Maven自己提供的在线存储库。


1
当链接到您自己的网站或内容(或与您有关联的内容)时,您必须在答案中披露您的关联,以便不被视为垃圾邮件。在用户名中具有与URL相同的文本或在个人资料中提及它不被视为足够的披露根据Stack Exchange政策。 - cigien

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接