如何在Maven中找到依赖项和插件的隐藏版本?

问题描述 投票:0回答:1

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

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

所以我的问题是:

  1. 在Maven中指定依赖项和插件参数的所有可能方法有哪些?即如果子POM的插件或父pom的插件管理中都没有版本号,我在哪里可以找到它?

  2. 是否有任何Maven命令来找出Maven从何处获取这些参数?例如,我可以使用dependency:tree命令。它将打印一个依赖关系列表,这将有助于我了解所卡住的版本依赖关系。但这是一个hack,它无法帮助我使用插件。也许有更好的东西?

maven maven-dependency-plugin maven-dependency
1个回答
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之类的问题。

© www.soinside.com 2019 - 2024. All rights reserved.