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

发布于 2024-07-30 17:29:21 字数 163 浏览 5 评论 0原文

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

我想知道是否有一种方法可以使 Maven 构建独立于网络连接。

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

I'm working in a Continuous Integration environment and part of the automated build process includes the compilation of Maven managed projects.

What I want to know is if there is a way to make the Maven build independent of the network connection.

Currently we have the all the jar's that we need installed in the repository but the problem is that Maven tries to check for plugins updates and that makes the build fail if, eventually, the connection is down.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

盛夏尉蓝 2024-08-06 17:29:21

您可以使用 -o 开关离线运行,也可以将 true添加到您的 settings.xml 中。

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

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

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

<mirrors>
  <mirror>
    <id>central-proxy</id>
    <mirrorOf>central</mirrorOf>
    <url>http://localhost/nexus/content/groups/public</url>
  </mirror>
</mirrors>

You can either run offline with the -o switch or by adding <offline>true<offline> to your settings.xml.

It's worth pointing out though that Maven may fail the build when running offline if it decides it needs to check for dependency or plugin updates. If you set your repositories with <updatePolicy>never</updatePolicy> you can avoid this, but you'll need to force updates periodically (with -U and/or -cpu).

If you are using a repository manager, you can set your repository to be a mirror of the external repositories. This still involves a network connection, but only your internal network (or if the repository manager is on your local machine, no connection at all).

For example this config redirects all calls to central to my local Nexus server running on my development box:

<mirrors>
  <mirror>
    <id>central-proxy</id>
    <mirrorOf>central</mirrorOf>
    <url>http://localhost/nexus/content/groups/public</url>
  </mirror>
</mirrors>
懒的傷心 2024-08-06 17:29:21

使用 -o(离线)选项

use the -o (offline) option

演多会厌 2024-08-06 17:29:21

您可以尝试安装“构建工件存储库管理器”,例如 Archiva (http://archiva.apache.org/) 在您的本地网络中。
它将作为镜像工作,因此 Maven 将尝试在本地网络而不是互联网上下载并检查更新。 你还应该构建自己的工件并在档案上使用它。

You can try installing a "Build Artifact Repository Manager" like Archiva (http://archiva.apache.org/) in you local network.
It will work as a mirror, so maven will try to download and check for updates on your local network and not over internet. Uou should also build your own artifacts and use it on archiva.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文