Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何查找从BOM导入的Maven依赖项版本声明_Maven_Maven Bom - Fatal编程技术网

如何查找从BOM导入的Maven依赖项版本声明

如何查找从BOM导入的Maven依赖项版本声明,maven,maven-bom,Maven,Maven Bom,多模块父级POM声明以下BOM导入: <dependencyManagement> <dependencies> <dependency> <groupId>io.spring.platform</groupId> <artifactId>platform-bom</artifactId> <version>${spring.io.platform.ve

多模块父级POM声明以下BOM导入:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>io.spring.platform</groupId>
      <artifactId>platform-bom</artifactId>
      <version>${spring.io.platform.version}</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
这并不是很有帮助,因为它看起来和我自己管理Hibernate版本没有什么不同。如果必须手动执行此操作,请

  • platform-bom-2.0.3.RELEASE.pom开始,搜索Hibernate->nothing
  • 转到其父级
    spring-boot-starter-parent-1.3.3.RELEASE.pom
    ,搜索Hibernate->nothing
  • 转到其父级
    spring-boot-dependencies-1.3.3.RELEASE.pom
    ,搜索Hibernate->finally
但这是多么痛苦的考验啊。当然,您可以检查,但Maven不应该自己找到这些信息吗?

根据它的说法,用一个简单的命令似乎是不可能的

您应该编写自己的插件或脚本,将层次结构提升到顶部,并找到您感兴趣的工件


小提示:要检索您正在使用的工件的版本,您可以在Idea编辑器中打开pom.xml并按住Ctrl键,同时将鼠标悬停在工件ID上,将显示其pom的全名及其版本。

有两件事。首先,dependency:tree的输出打印出最终结果。这里的问题是你为什么不相信?如果您使用BOM表,为什么您要自己管理版本

除此之外,您还可以使用:

mvn help:effective-pom
如果您搜索得稍微好一点,就会找到包含如下版本定义的:

3.5.5
4.3.11.4最终版本
5.2.4.最终版本
2.4.3
2.3.13
2.4.7.最终版本

在Eclipse中,当以XML格式查看pom时(即在“pom.XML”选项卡中,而不是在“Overview”选项卡中),只需将鼠标光标放在工件名称上,就会出现一个弹出窗口,其中包含有效版本和定义位置


mvn help:effective pom-Dverbose=true提供pom的位置信息,其中注释中的条目来自有效pom。
参考资料:

我试图从中使用
mvn帮助:effective pom-Dverbose,但它对我无效,因为它使用的是maven帮助插件:2.2和

因此,你应该:


(最好使用
-Doutput
,因为文件可能很大,在终端中读取不方便)

我的答案与@Didier L非常相似。由于.xml文件扩展名
mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:effective-pom-Dverbose=true-Doutput=effective-pom
谢谢,但所有这些都已经在我的Q中了。我从来没有说过我不相信打印出来的
dependency:tree
,也从来没有说过我自己管理这个版本。Q是“定义有效Hibernate版本的地方”。另外,我确实列出了你提到的POM。关键是,你所说的“搜索稍微好一点”在我看来是一种折磨。我希望Maven能够立即告诉我版本定义在哪里(即在哪个POM中)。对于maven dependency plugin或任何其他能够解决此类问题的插件来说,这似乎是个好主意……mvn help:effective pom-Dverbose=true提供pom位置信息,其中条目来自有效pom。如果依赖项来自bom,它会很好地报告。但是,如果bom表也来自另一个bom表,则不会显示该bom表。
...
[INFO] +- org.hibernate:hibernate-core:jar:4.3.11.Final:compile
...
mvn help:effective-pom
mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:effective-pom -Dverbose=true -Doutput=effective-pom.xml