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

ega*_*aga 7 maven-2

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

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

谢谢!

Ric*_*ler 11

您可以将存储库配置为仅偶尔检查更新,或者永远不要通过在存储库声明上设置updatePolicy元素.从设置文档:

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

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

<repositories>
  <repository>
    <id>central</id>
    <releases>
      <updatePolicy>never</updatePolicy>
    </releases>
  </repository>
</repositories>
Run Code Online (Sandbox Code Playgroud)

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


Rob*_*anu 11

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

 -o,--offline                           Work offline
Run Code Online (Sandbox Code Playgroud)

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