有没有办法让Maven构建独立于网络连接?

我正在持续集成环境中工作,部分自动构建过程包括Maven托管项目的编译。

我想知道的是,是否有办法使Maven构建独立于网络连接。

目前我们需要在存储库中安装所有需要的jar,但问题是Maven尝试检查插件更新,如果最终连接断开,则会导致构建失败。

您可以使用-o开关脱机运行,也可以将 true 添加到settings.xml。

值得指出的是,Maven可能会在离线运行时失败,如果它确定需要检查依赖项或插件更新。 如果使用 never 设置存储库,则可以避免这种情况,但是您需要定期强制更新(使用-U和/或-cpu)。

如果您使用的是存储库管理器,则可以将存储库设置为外部存储库的镜像。 这仍然涉及网络连接,但只涉及内部网络(或者如果存储库管理器位于本地计算机上,则根本没有连接)。

例如,此配置将所有中央呼叫重定向到我的开发箱上运行的本地Nexus服务器:

  central-proxy central http://localhost/nexus/content/groups/public   

使用-o(离线)选项

您可以尝试在本地网络中安装Archiva( http://archiva.apache.org/ )之类的“Build Artifact Repository Manager”。 它将作为镜像工作,因此maven将尝试下载并检查本地网络上的更新,而不是通过Internet。 您还应该构建自己的工件并在archiva上使用它。