Java 如何解决启动Spring启动应用程序时出现的Gson builder错误
我正在编写一个新的Spring Boot应用程序,我需要使用一个由我的团队开发的包。此包在层次结构的某个位置具有较旧的Gson依赖项(我找不到),因此在运行我的应用程序时引发以下错误:Java 如何解决启动Spring启动应用程序时出现的Gson builder错误,java,maven,spring-boot,gson,Java,Maven,Spring Boot,Gson,我正在编写一个新的Spring Boot应用程序,我需要使用一个由我的团队开发的包。此包在层次结构的某个位置具有较旧的Gson依赖项(我找不到),因此在运行我的应用程序时引发以下错误: NoSuchMethodError:com.google.gson.GsonBuilder.setLenient()Lcom/google/gson/GsonBuilder 我试着 在我的pom中,以强制执行最新版本 在DependencyManagement部分添加依赖项 排除Gson依赖项,如下所示: <
NoSuchMethodError:com.google.gson.GsonBuilder.setLenient()Lcom/google/gson/GsonBuilder
我试着
DependencyManagement
部分添加依赖项<dependency>
<groupId>com.mycompany</groupId>
<artifactId>services</artifactId>
<version>${version}</version>
<exclusions>
<exclusion>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</exclusion>
</exclusions>
</dependency>
com.mycompany
我在这里拼命想理解的问题:
为什么以前的选择不起作用
如果我跳过Gson自动配置,我会失去什么?我该如何实现
我们将非常感谢您在这方面提供的任何帮助。提前谢谢
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>myapp</artifactId>
<version>1.0-SNAPSHOT</version>
<name>myapp</name>
<properties>
<java.version>1.8</java.version>
<spring.boot.version>2.1.7.RELEASE</spring.boot.version>
<camel.version>2.24.1</camel.version>
<lasius.wsutils.version>3.0.37</lasius.wsutils.version>
<mysql.connector.version>5.1.47</mysql.connector.version>
</properties>
<!--<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7.RELEASE</version>
</parent>-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-boot-dependencies</artifactId>
<version>${camel.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!--Spring Boot dependencies-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>-->
<!-- camel dependencies -->
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-undertow-starter</artifactId>
</dependency>
<!-- test dependencies -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--being resolved from auth-->
<!--<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.9.3</version>
</dependency>-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.version}</version>
</dependency>
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>services</artifactId>
<version>${version}</version>
<exclusions>
<exclusion>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
4.0.0
com.mycompany
myapp
1.0-快照
myapp
1.8
2.1.7.发布
2.24.1
3.0.37
5.1.47
org.apache.camel
camel-spring引导依赖项
${camel.version}
聚甲醛
进口
org.springframework.boot
spring启动依赖项
${spring.boot.version}
聚甲醛
进口
com.google.code.gson
格森
2.8.5
聚甲醛
进口
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
弹簧靴起动器执行器
org.apache.camel
驼形弹簧靴起动器
org.apache.camel
驼峰式下拖起动器
org.springframework.boot
弹簧起动试验
测试
mysql
mysql连接器java
${mysql.connector.version}
com.mycompany
服务
${version}
com.google.code.gson
格森
org.springframework.boot
springbootmaven插件
${spring.boot.version}
重新包装
org.apache.maven.plugins
maven编译器插件
8.
8.
您可以查看自动配置实现:-通常它会为您的applicationContext引导一个bean和一些属性。您可以在您的配置中自己完成。但我不明白为什么你的选择1不起作用。您是否将其添加到正确的模块中?maven的最短路径算法应该已经解决了这种依赖关系。您使用了较新的json版本还是较旧的版本?请共享您的pom,以便我们检查…@wemu我添加了较新的版本,如pom.xml中所示。也许“mvn dependency:tree”可以给出一个提示,说明为什么直接添加依赖项没有效果。我也有同样的问题。我也尝试了所有这三种修复方法,但都没有成功。有人找到解决办法了吗?