无法使用外部库编译Spring Boot应用程序

时间:2019-07-15 15:04:52

标签: java spring spring-boot

我有一个Spring Boot应用程序,正在使用Eclipse上的STS开发。我正在尝试使用Maven将Jackson库纳入该应用程序。

在我的POM文件中标识的项目中的依赖项如下:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
 <dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-core</artifactId>
   <version>2.7.5</version>
 </dependency>
 <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.7.5</version>
 </dependency>
 <dependency>
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-annotations</artifactId>
    <version>2.7.5</version>
 </dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

我一直在尝试使用

编译代码
mvnw clean package

但是由于以下原因导致编译失败:

Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.exc.InvalidDefinitionException
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_131]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_131]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) ~[na:1.8.0_131]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_131]
    ... 62 common frames omitted

具有该类的库已在POM文件中声明!

我在这里显然缺少什么。如何让编译器将Jackson罐子包含到mvnw停止失败的编译sp中?

1 个答案:

答案 0 :(得分:2)

如果查看以下URL,则杰克逊数据绑定与杰克逊核心和杰克逊注释有关。因此,无需提及它们。它将在内部使用依赖项。正如Denium Sir所说,删除依赖项,在正常情况下仅使用jackson databind,如果Spring引导应用程序仅使用BOM(材料构建),则无需提及这些依赖项。

https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind/2.7.5