java - 工作中但在家中没有问题: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.
解决方案
你可能会克隆 Maven Central,这是存储大多数 Maven 项目的存储库。在这个克隆中,他们拍摄了他们正在使用的东西的快照。通常这是通过 Artifactory 镜像完成的。
基本上,本地 Artifactory 获取请求,然后重新向 Maven Central 发出请求,缓存本地副本。下次对同一项目发出请求时,将从公司的服务器内提供服务。
似乎发生的情况是,组织变更、配置变更或仅仅是 Internet 连接变更中断了对 Maven Central 的中继请求,现在您对最新项目的所有请求仅显示您公司的最新项目Maven 中央镜子。
一些公司的法律团队已经加入其中,因此他们不批准在未审查软件许可证的情况下提取新软件(甚至是旧软件的新版本)。这降低了开发人员的法律风险,包括可能迫使公司公开其代码或可能需要付费许可证的许可软件。在这样的公司中,他们只为单个下载打开镜像,记录依赖关系,并查看所有下载的软件许可。
可以想象,法律团队很乐意推荐此流程;但是,通常不在开发团队的时间表上。我已经更新了这样的软件堆栈,通常需要一到两个月的时间才能获得所有许可证(其中大部分会通过正确的法律代表,他们可能会阅读每个产品的 Mozilla 公共许可证以最大化计费时间)。
推荐阅读
- python - 如何将纪元时间值转换为本地时间?
- python - SQLAlchemy - “必须出现在 GROUP BY 子句中或在聚合函数中使用”
- azure-devops - 将 Nuget 包从本地 TFS2017 发布到 azure DevOps
- r - 在 R / dplyr 中跨不同子集计算值
- c++ - 是否可以在 C++ 中编写两个类,其中每个类都需要知道另一个类的存在?
- python - 我怎样才能从文件中进行计算?
- python - 在 Python Pandas 中计算不同的值
- python - 在 imshow 的边缘添加条形图,保持条形与单元格对齐
- python - PyOpenGL 读回缓冲区颜色
- git - 如何让 git diff 列出自上次提交以来创建的 * 文件?