【发布时间】:2018-02-03 01:43:53
【问题描述】:
代码中的兄弟你好。
当我尝试在没有互联网连接的情况下工作时(有时这在我的网络中出现故障),我会问自己一个问题......“有一种方法可以在不需要互联网连接的情况下配置 spring maven java 项目?”。 ..所以,自从我第一次怀疑这个问题以来,我在谷歌中搜索这个答案,但从未找到它。编码方面的绝地武士们,你们能对我说些什么?
从现在开始,我非常感谢您的帮助
【问题讨论】:
代码中的兄弟你好。
当我尝试在没有互联网连接的情况下工作时(有时这在我的网络中出现故障),我会问自己一个问题......“有一种方法可以在不需要互联网连接的情况下配置 spring maven java 项目?”。 ..所以,自从我第一次怀疑这个问题以来,我在谷歌中搜索这个答案,但从未找到它。编码方面的绝地武士们,你们能对我说些什么?
从现在开始,我非常感谢您的帮助
【问题讨论】:
您可以在这篇文章 f.e. 中找到有关 mavens 离线标志的更多信息:Is there a maven command line option for offline mode?
【讨论】:
这是一个笼统的问题,所以我会尝试提供一个笼统的答案
简而言之,Spring 本身在运行时不需要 Internet 连接,从某种意义上说,它不应该包含“在 Internet 上的某个地方”并查询某些内容的代码。
但是,Spring 有很多依赖项(实际上就像您自己的项目可能有依赖项一样),因此 Maven 必须在第一次运行时从某个地方获取它们。
因此,默认情况下,Maven(您提到的构建工具)将需要互联网连接。当然,有很多选项可以克服这个“困难”,所有这些都归结为使所有这些依赖项可用,这样您就可以在不上网的情况下编译项目。
实际解决方案可能会有所不同:
列表项“安装 Nexus/Artifactory”将充当代理并为您下载依赖项。如果您的网络基础架构可以选择从某些服务器连接到互联网,而您的“已开发机器”仅连接到内部网络,那么这是有道理的。
将带有一些爬虫(它公开 Web 界面)的整个 Maven 存储库下载到您的计算机并在那里使用它(如果您为没有任何类型互联网连接的组织工作)
李>只要来到与您的 PC 有 Internet 连接的地方,将所有内容编译一次,Maven 将下载所有依赖项并将它们缓存在您的本地 m2 存储库中。因此,下次即使没有互联网连接,您也可以构建您的项目。
我知道最后一个选项听起来更像是一个笑话,但如果你说一个在家没有任何联系但想尝试这个“春天的东西”的学生,它在技术上也有效:)
【讨论】:
mvn dependency:go-offline。如果您只进行编译,Maven 将只下载编译所需的内容。但是,如果你想执行例如单元测试,它不会有那些依赖。 go-offline 将为您可以在项目中执行的每个可能的目标下载每个依赖项。