首页 > 解决方案 > 工作中但在家中没有问题:mvn versions:display-dependency-updates

问题描述

当我mvn versions:display-dependency-updates在家跑步时,我得到了预期的结果(显示哪些依赖项有新版本的输出)。但是,当我在使用内部 Maven 存储库(Nexus Repository Manager 2.14.13-01)的工作中运行它时,结果总是显示“依赖项中的依赖项没有更新版本”。

但是,如果我通过 Web 界面进入,我可以看到存储库中有更新的版本。我猜他们的设置不正确,如果我能提供给他们帮助解决这个问题的任何信息,我将不胜感激。

这是使用详细选项的输出:

[INFO] --- versions-maven-plugin:2.8.1:display-dependency-updates (default-cli) @ TestProgram) ---
[INFO] The following dependencies in Dependencies are using the newest version:
[INFO]   commons-beanutils:commons-beanutils ............................ 1.9.1
[INFO]   org.apache.commons:commons-collections4 .......................... 4.0
[INFO]   org.apache.commons:commons-compress ............................. 1.15
[INFO]
[INFO] No dependencies in Dependencies have newer versions.

标签: javamavennexusmaven-versions-plugin

解决方案


你可能会克隆 Maven Central,这是存储大多数 Maven 项目的存储库。在这个克隆中,他们拍摄了他们正在使用的东西的快照。通常这是通过 Artifactory 镜像完成的。

基本上,本地 Artifactory 获取请求,然后重新向 Maven Central 发出请求,缓存本地副本。下次对同一项目发出请求时,将从公司的服务器内提供服务。

似乎发生的情况是,组织变更、配置变更或仅仅是 Internet 连接变更中断了对 Maven Central 的中继请求,现在您对最新项目的所有请求仅显示您公司的最新项目Maven 中央镜子。

一些公司的法律团队已经加入其中,因此他们不批准在未审查软件许可证的情况下提取新软件(甚至是旧软件的新版本)。这降低了开发人员的法律风险,包括可能迫使公司公开其代码或可能需要付费许可证的许可软件。在这样的公司中,他们只为单个下载打开镜像,记录依赖关系,并查看所有下载的软件许可。

可以想象,法律团队很乐意推荐此流程;但是,通常不在开发团队的时间表上。我已经更新了这样的软件堆栈,通常需要一到两个月的时间才能获得所有许可证(其中大部分会通过正确的法律代表,他们可能会阅读每个产品的 Mozilla 公共许可证以最大化计费时间)。


推荐阅读