为什么maven在repo.maven.apache.org上点击本地罐子?

时间:2016-06-01 09:03:26

标签: maven maven-3

我在名为~/.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的逻辑是什么?

1 个答案:

答案 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”(仅当本地不存在时)。

希望这会有所帮助