为什么POM类型的依赖项在Maven树中不显示为传递依赖?

时间:2013-12-05 14:07:50

标签: java maven pom.xml

当我有一个包含POM的项目时,例如像这样:

<dependency>
<groupId>org.jboss.arquillian</groupId
<artifactId>arquillian-bom</artifactId
<version>1.1.2.Final</version>  
<type>pom</type
<scope>test</scope>
</dependency>

然后POM真的下载到我的本地存储库。并且POM包含一个依赖项列表(我可以检查我的本地仓库中的POM文件,有依赖管理标记,并列出了很多依赖项,例如arquillian-config-api,shrinkwrap-descriptors-bom等。 。),但这些依赖项未列在mvn依赖项:tree中。依赖关系树如下所示:

...
\- org.jboss.arquillian:arquillian-bom:pom:1.1.2.Final:test
(no more lines below it)
...

但实际上我希望Maven会将这些依赖项显示为传递依赖项。当依赖关系的类型是JAR类型时,实际上会显示传递依赖关系。

不知何故,我认为我不明白使用Maven时输入“pom”的含义是什么。

到目前为止,我认为它只是意味着它不是一个工件,而是一个插入POM中的POM。因此,当我包含POM类型的依赖项时,包含POM类型依赖项的依赖项。

但似乎我错了,互联网上的Maven文档并没有帮助我解决这个问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

POM类型依赖关系通常用于指示父子关系依赖关系层次结构中的父项目。默认情况下,POM类型项目工件不会在maven反应器中展开。只有在反应堆中构建了jar,war等具体类型时,才会为调试日志记录创建和扩展依赖关系。

但你不应该担心它。如果你想交叉检查这些,那么POM编辑器中的eclipse pom依赖层次结构和有效的pom选项卡应该会有所帮助。