我正在尝试使用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感到沮丧。
答案 0 :(得分:1)
如果将pom
类型的依赖项放入<dependencies>
中,则Maven将把POM的内容用作传递性依赖项。因此,除非该POM中的所有内容都具有test
作用域或它的版本被POM的其他部分覆盖,否则它将成为类路径的一部分。
将POM放入<dependencyManagement>
中是另一回事。请注意,范围import
仅适用于<dependencyManagement>
。