【问题标题】:How can I find out hidden versions of dependencies and plugins in Maven?如何在 Maven 中找出隐藏的依赖项和插件版本?
【发布时间】:2014-11-26 13:28:08
【问题描述】:

我们不需要指定我们使用的 Maven 依赖和插件的版本和其他参数。我们只能在父 POM 中执行一次,或者可能以其他方式在我们的子 POM 中继承该属性。

不幸的是,我多次遇到无法轻易找到依赖项和插件的真实参数的项目。 IE。依赖项的版本是空的,但在父 POM 中没有关于此的信息。

所以我的问题是:

  1. 在Maven中指定依赖和插件参数的所有可能方式有哪些? IE。如果子 POM 的插件和父 pom 的插件管理中都不存在版本号,我在哪里可以查找版本号?

  2. 是否有任何 Maven 命令可以找出 Maven 从何处获取这些参数?例如,我可能会使用dependency:tree 命令。它将打印一个依赖项列表,这将帮助我理解我所坚持的版本依赖项。但这是一个 hack,它不能帮助我使用插件。有没有更好的?

【问题讨论】:

标签: maven maven-dependency-plugin maven-dependency


【解决方案1】:

在执行任何命令之前,Maven 会构建“有效的 POM”,请参阅this stackoverflow answer 了解更多详细信息。您可以通过运行mvn help:effective-pom 查看任何项目的有效 POM。通常,当我运行此命令时,我会将输出重定向到一个文件中,以便我可以在文本编辑器中查看和搜索它。

您询问了 POM、依赖项和插件的特定部分。你在正确的轨道上,maven-dependency-plugin 帮助。我最常使用的目标是dependency:treedependency:resolvedependency:resolve-plugins。前两个辅助项目依赖,最后一个辅助插件。添加 -U 选项以强制 Maven 更新依赖项,而不管 update policies/repository metadata 值如何。

从空的本地存储库开始进行故障排除时也很有帮助。

最后但同样重要的是,当构建使用没有特定版本的插件时,Maven 会发出警告。始终指定显式版本来修复警告并避免出现this one 等问题。

【讨论】:

  • 非常感谢!这正是我想要的。
猜你喜欢
  • 1970-01-01
  • 2011-08-27
  • 2014-11-25
  • 2015-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-17
  • 1970-01-01
相关资源
最近更新 更多