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

时间:2014-10-01 16:17:52

标签: maven

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

不幸的是,很多次我遇到过那些我无法轻易找到真正的依赖关系和插件的项目。即依赖项的版本为空,但在父POM中没有关于此的信息。所以我的问题是:

1)请列出在Maven中指定依赖项和插件参数的所有可能方法。即,如果版本号不存在于子POM的插件中,也不存在于父pom中的插件管理中,我在哪里可以查找。 2)是否有任何Maven命令可以找出Maven从哪里获取这些参数?例如,我可以使用dependencyTree命令。它将打印一个依赖项列表,这将帮助我理解我所困扰的版本依赖性。但这是一个黑客,它无法帮助我插件。可能有更好的东西吗?

1 个答案:

答案 0 :(得分: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等问题。

相关问题