Java 导入maven依赖项
我有两个关于这个话题的问题。我想将以下依赖项导入到我的项目中:Java 导入maven依赖项,java,maven,dependencies,pom.xml,Java,Maven,Dependencies,Pom.xml,我有两个关于这个话题的问题。我想将以下依赖项导入到我的项目中: <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>${jackson.version}</version> </dependency> <depen
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
com.fasterxml.jackson.core
杰克逊核心
${jackson.version}
com.fasterxml.jackson.core
杰克逊数据绑定
${jackson.version}
com.fasterxml.jackson.core
杰克逊注释
${jackson.version}
这是我的两个问题
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${springboot.version}</version>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
org.springframework.boot
在这个问题上,与您的项目“最近”的依赖项(即在pom中声明而不是依赖项的pom)将首先由您的程序使用,因此您不必排除工件。然而,我还没有发现这在实践中总是有效的(或者可能还有其他的事情发生)。在另一种情况下,排除非常有用,即您正在创建一个包含所有依赖项的着色Jar,并且不希望包含同一个Jar的多个版本 一,。相同groupId的较小重要语句
据我所知,即使使用相同的groupId,也无法用一条import语句导入所有三个工件。但是,通过使用一个变量来确保版本都是相同的,这样做是正确的。如果您发现不同依赖项的版本号存在冲突,这将有助于找到下一个答案
2.解决依赖冲突
不完全是。这两个依赖项都将包含在类路径中,这可能会导致以后的冲突(或者由于Java首先查找旧版本而无法解决新版本函数的问题)。处理这个问题有两种方法。一种是使用插件来搜索可能发生的冲突,如果您不确定的话。一旦您理解了冲突(比如Springboot和您的软件),您就可以排除Springboot引入的特定依赖项,从而使您的版本成为其他依赖项使用的版本。您可以通过在声明Springboot依赖项时添加排除项来做到这一点:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${springboot.version}</version>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
org.springframework.boot
在这个问题上,与您的项目“最近”的依赖项(即在pom中声明而不是依赖项的pom)将首先由您的程序使用,因此您不必排除工件。然而,我还没有发现这在实践中总是有效的(或者可能还有其他的事情发生)。在另一种情况下,排除非常有用,即您正在创建一个包含所有依赖项的着色Jar,并且不希望包含同一个Jar的多个版本