Spring data gemfire 1.7.0.RELEASE对版本1.7.12有slf4j-api
和jcl-over-slf4j
有编译时间依赖性。我在Maven的POM文件中定义的下面的依赖,因为我们需要SLF4J 1.7.10依赖(其他几个罐子依赖于此):maven如何解决spring数据gemfire的slf4j依赖问题?
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-gemfire</artifactId>
<version>1.7.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.10</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.10</version>
<scope>runtime</scope>
</dependency>
我有一个内部的maven回购作为Maven的中央存储库。下面是我在不同的场景看,基于什么罐子的行为在Maven中央可供选择:
我的问题:
- 在方案1,我不明白为什么构建没有抱怨缺少1.7.12 jar。如何解决依赖关系?
- 在场景2中,1.7.10 jar如何在1.7.12中覆盖1.7.12,而没有在弹簧数据依赖关系中为slf4j 1.7.12指定一个排除?
- 在场景3中,当maven中央缺少slf4j-parent 1.7.12的pom时,它为什么会投诉?由于1.7.10罐子存在,所以1.7.10罐子(类似于情况1)不应该运行良好吗?
谢谢。在场景1中,它不应该尝试解析1.7.12的依赖关系树吗? –
事实上,这仍然是我唯一不清楚的地方,如果依赖关系根本不存在,并且POM覆盖它,或者如果它存在,它可能会有不同的行为,它会开始处理它,然后由于缺少部分而失败在依赖关系图中。你使用的是哪个版本的maven? –
我更新了我的答案并提供了更多详细信息。 –