我正在持续集成环境中工作,部分自动构建过程包括Maven托管项目的编译。
我想知道的是,是否有办法使Maven构建独立于网络连接。
目前我们需要在存储库中安装所有需要的jar,但问题是Maven会尝试检查插件更新,如果最终连接断开,则会导致构建失败。
答案 0 :(得分: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>
答案 1 :(得分:3)
使用-o(离线)选项
答案 2 :(得分:0)
您可以尝试在本地网络中安装Archiva(http://archiva.apache.org/)之类的“Build Artifact Repository Manager”。 它将作为镜像工作,因此maven将尝试下载并检查本地网络上的更新,而不是通过Internet。您还应该构建自己的工件并在archiva上使用它。