【问题标题】:maven equivalent of npms package-lock.jsonmaven 相当于 npms package-lock.json
【发布时间】:2022-02-01 07:39:18
【问题描述】:

已知:npm
我习惯了 npm 和 JavaScript,每当依赖关系树发生变化时,都会生成一个变化的 package-lock.json。此文件包括所有依赖项及其具有已解析/固定版本的传递依赖项。

未知:mvn
现在我必须使用 Maven 和 Java。
问题是:npms package-lock.json 的 maven 等效项是什么?
我需要这些信息来有效地跟踪我的项目/包中包含的(传递)依赖项的确切版本。

【问题讨论】:

  • 我不确定 maven 是否正在生成具有依赖关系的文件,但您可以通过命令检查它:mvn dependency:tree 您可以在此处找到更多信息:devwithus.com/maven-dependency-tree
  • 你正在使用的版本是在你的 pom 文件中定义的......你永远不应该使用版本范围......所以使用像<version>1.2.3</version>这样的东西......这使得锁文件的使用过时了.

标签: maven


【解决方案1】:

在 Maven 中,您通常不使用版本范围 - 因此您将始终为依赖项定义一个版本。如果您想更改传递依赖的版本,您可以使用 dependencyManagement 块(类似于新的 npm overrides)来执行此操作。

如果您想了解所使用的确切依赖项的报告,请查看Maven Dependency Plugin。您可以运行 mvn dependency:tree 来查看所有依赖项(带有关系),包括版本。

有关 Maven 依赖机制的更多信息,请参阅Introduction to the Dependency Mechanism

【讨论】:

  • 似乎mvn dependency:analyze / mvn dependency:analyze-report 确实列出了确切使用的版本。也许您可以将其纳入您的答案中?
  • 我提到了dependency:tree(也是一样的)
  • dependency:tree 中有“SNAPSHOT”,dependency:analyze-report 中有“20220207.085336” - 所以有区别...
猜你喜欢
  • 2019-03-10
  • 1970-01-01
  • 2020-09-24
  • 2018-10-06
  • 2018-03-21
  • 1970-01-01
  • 1970-01-01
  • 2017-11-02
  • 2019-03-26
相关资源
最近更新 更多