如何强制maven下载poms以供离线使用

时间:2009-09-13 08:46:20

标签: maven-2

我对maven的问题是,如果maven存储库没有响应,则无法构建。它似乎在每个“mvn包”中获取一些poms,这些都不会改变,因为它们的版本相同。

我怎么能对maven说,请不要从服务器上查找它们,而是将它们永久地下载到离线存储库?

谢谢!

2 个答案:

答案 0 :(得分:11)

您可以将存储库配置为仅偶尔检查更新,或者永远不要通过在存储库声明上设置updatePolicy元素。来自settings documentation

  

下载更新的频率 - 可以是“始终”,“每日”(默认),“间隔:XXX”(以分钟为单位)或“从不”(仅当本地不存在时)。

将以下内容添加到您的POM或设置中会将中央存储库配置为仅在本地不存在工件时下载:

<repositories>
  <repository>
    <id>central</id>
    <releases>
      <updatePolicy>never</updatePolicy>
    </releases>
  </repository>
</repositories>

如果有问题的存储库是内部远程存储库,则需要确保远程存储库中的maven-metadata.xml为configured correctly,否则Maven将每次都尝试下载它。最简单的方法是使用自动管理元数据的repository manager

答案 1 :(得分:11)

您可以使用-o标志运行maven:

 -o,--offline                           Work offline

这将导致Maven永远不会在远程存储库中查找依赖项。另一方面,如果在本地存储库中找不到依赖项,则构建将失败。