3

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

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

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

4

3 回答 3

5

您可以使用 -o 开关或通过将<offline>true<offline>添加到 settings.xml 来脱机运行。

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

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

例如,此配置将所有对中央的调用重定向到在我的开发盒上运行的本地Nexus服务器:

<mirrors>
  <mirror>
    <id>central-proxy</id>
    <mirrorOf>central</mirrorOf>
    <url>http://localhost/nexus/content/groups/public</url>
  </mirror>
</mirrors>
于 2009-08-07T14:01:05.417 回答
3

使用 -o(离线)选项

于 2009-08-07T13:20:09.990 回答
0

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

于 2009-08-07T14:28:48.857 回答