Java Maven dependencyManagement中的多个定义-尤其是导入
Maven如何在pom.xml的dependencyManagement部分处理依赖项的多个定义?e、 gJava Maven dependencyManagement中的多个定义-尤其是导入,java,maven,import,dependencies,dependency-management,Java,Maven,Import,Dependencies,Dependency Management,Maven如何在pom.xml的dependencyManagement部分处理依赖项的多个定义?e、 g <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</art
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
<!-- Exclusion needed to prevent conflicts with SLF4j -->
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencyManagement>
org.springframework
spring上下文
${spring.version}
org.springframework
spring上下文
${spring.version}
公用记录
公用记录
这里我已经定义了两次spring上下文。一次排除,一次不排除。Maven在两个条目都存在的情况下运行和生成。但我不确定它是如何“读取”依赖关系的。明智的做法可能是合并这些定义。虽然我不确定这是可能的。如果失败了,我希望它打印一个错误
虽然我不清楚上面的内容,但如果有导入范围定义,它会变得更复杂
e、 g
org.springframework.boot
spring启动依赖项
${spring boot.version}
聚甲醛
进口
如果在导入依赖项pom.xml和spring引导依赖项pom.xml中都定义了依赖项,这里会发生什么?通常,最后一个条目获胜,子pom覆盖父pom。但进口的处理方式不同——它们与其他从属管理条目不在“同一级别”。有关详细信息,请参阅
看看这个方便的实验工具。我想得到一些文档来定义我所看到的。即-对于重复依赖项,使用最后一个定义。没有合并。e、 g.在spring上下文之上使用排除。对于“导入”范围,顺序并不重要。如果它是在importing pom.xml中定义的,那么它就是所使用的版本。Maven文档中是否解释了这一点?
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>