我在名为~/.m2
的本地maven存储库com.example.project
中构建并安装了一个项目。 maven在调试消息中说,当我构建依赖于com.example.project
的另一个项目时,有时并非总是如此:
Downloading: https://repo.maven.apache.org/maven2/com/example/project/maven-metadata.xml
为什么maven查询该URL以及为什么偶尔会发生这种情况?首先,该URL上没有任何内容,其次,jar已存在于本地存储库中,第三,我没有更改本地jar依赖项的版本号。那么让我们说我有1000个本地项目,它会查询URL1,URL2,...,URL1000。此查询对不存在的URL的逻辑是什么?
答案 0 :(得分:1)
为什么maven查询该URL以及为什么偶尔会发生这种情况?
偶尔:具体是daily
,因为它是maven内置中央存储库的默认updatepolicy
。
如果您查看所有pom文件继承自的maven super POM,您会发现存储库配置如下
<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>
<release>
元素未出现在此处,因此这意味着存储库将采用默认值。
已启用(默认为true
)
updatePolicy(默认为daily
) - &gt;可能的值:“always”,“daily”(默认值),“interval:XXX”(以分钟为单位)或“never”(仅当本地不存在时)。
希望这会有所帮助