本地 Maven 依赖库

Posted

技术标签:

【中文标题】本地 Maven 依赖库【英文标题】:Local maven dependency repository 【发布时间】:2017-06-12 03:17:14 【问题描述】:

我正在尝试使用 nexus 设置一个本地 maven 存储库,以存储所有要在离线环境中使用的 maven 依赖库。我们需要能够将我们的 maven 指向这个存储库,而不是尝试在 Internet 上查询所需的项目库。在我们的环境中没有使用互联网的选项,所以我需要一种简单(ish)的方式来下载每个 maven 可能需要的库,以填充我们的存储库。我并不是要就最简单的方法征求意见,我只需要一些可行的方法,因为除了明年点击链接和下载之外,我不知道从哪里开始。我在网上找到了解释如何存储项目特定依赖项的方法,但我找不到获取所有依赖项的方法。我也知道这些库是不断变化和升级的,所以任何关于如何在不单独单击和下载每个库的情况下保持它们最新的想法也会很棒。谢谢!

【问题讨论】:

下载互联网是如此2012:w-shadow.com/blog/2009/06/12/download-the-entire-internet 这里的答案提供了一个建议:***.com/questions/12127441/… 谢谢,我以前读过这个,这正是我们正在做的,但这引用了一个特定项目的依赖项。如果没有项目将它们拉下来,我将如何获取所有依赖项? 这个怎么样? ***.com/questions/2439891/… 这确实提供了一些指导,谢谢。 【参考方案1】:

MavenCentral 非常庞大。下载它不仅需要很长时间,如果您尝试,它们会阻止您。

我非常了解您不能让您的开发人员在他们的开发过程中访问 MavenCentral。我们针对这个问题的解决方案如下:

我们有一个只有少数管理员可以访问的 MavenCentral 代理。如果开发人员需要一个不在我们开发 Nexus 上的依赖项,他会向管理员写一张票。他们检查依赖关系,如果他们批准,他们开始一项工作,将所需的依赖关系(连同所有传递依赖关系)从 MavenCentral 代理复制到开发 Nexus。这样,管理员可以完全控制开发人员使用的内容,但您无需复制整个 MavenCentral。

【讨论】:

以上是关于本地 Maven 依赖库的主要内容,如果未能解决你的问题,请参考以下文章

Maven 3 不会从本地存储库更新快照依赖项

Gradle在本地Maven存储库中找不到现有的依赖项

Maven:如何将本地 lib 目录用于依赖项而不是 Maven 存储库

Leiningen 中的本地依赖项而不创建 Maven 存储库?

如何强制 IntelliJ 中的 Maven 从本地 .m2 存储库中提取特定依赖项

Android 使用bintray将本地库上传到JCenter做maven依赖库