类型“ POM”的依赖性

时间:2019-12-17 10:05:09

标签: java maven

我正在尝试使用ServiceMix和ActiveMQ运行ESB系统。但是,即使在我走到那一步之前,我仍然对POM的依赖类型有疑问。我得到的Maven依赖为:

<!-- https://mvnrepository.com/artifact/org.apache.servicemix/servicemix -->
<dependency>
    <groupId>org.apache.servicemix</groupId>
    <artifactId>servicemix</artifactId>
    <version>7.0.1</version>
    <type>pom</type>
</dependency>

现在,当我在其中包含此依赖项的项目上运行“全新安装”时,我看不到任何activeMQ jar都在类路径中被复制或可用于编译(我已编写了复制依赖项,因此我可以看到其中包含了哪些jar文件)。在这种情况下,我是否还必须在pom文件中明确提及activeMQ依赖关系?喜欢:

<!-- https://mvnrepository.com/artifact/org.apache.activemq/activemq-core -->
<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-core</artifactId>
</dependency>

任何指导将不胜感激。缺少文档使该ServiceMix感到沮丧。

1 个答案:

答案 0 :(得分:1)

如果将pom类型的依赖项放入<dependencies>中,则Maven将把POM的内容用作传递性依赖项。因此,除非该POM中的所有内容都具有test作用域或它的版本被POM的其他部分覆盖,否则它将成为类路径的一部分。

将POM放入<dependencyManagement>中是另一回事。请注意,范围import仅适用于<dependencyManagement>