java - Spring Boot 冲突的 gradle 依赖项 : google oauth client

标签 java spring-boot gradle

我正在尝试在 Spring boot 应用程序中运行 Google Calendar Java 示例。 Google 日历示例在单独运行时按预期运行,但当它们一起运行时,其中一个依赖项与 Spring boot 依赖项发生冲突。

在这种情况下,我启用了以下依赖项: gradle dependancies enabled

启动 Spring boot 时看到以下错误:

org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is java.lang.NoSuchMethodError: javax.servlet.ServletContext.addServlet

我可以让 Spring boot 运行,进行以下依赖项更改并注释需要的 Google 日历代码

import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;

gradle dependancies disabled

当然,这意味着 Google 日历示例将不再运行...

我认为我需要的是某种强制针对依赖项的特定版本的方法,以便 Spring boot 可以找到它当前缺少的方法,同时允许 Google Calendar 示例导入它需要的内容,但是对于 Spring boot 我是新手感谢任何帮助或建议。

感谢您的宝贵时间:)

最佳答案

我在 gradle 中(也在 Spring Boot 应用程序中)遇到了与 com.google.api-client 相同的问题。 该问题似乎与 google 提供的 servlet 版本有关。 我通过在 build.gradle 编译行中添加排除来修复它:


    compile (group: 'com.google.api-client', name: 'google-api-client-appengine', version: '1.23.0'){
    exclude group:'javax.servlet'
    }

关于java - Spring Boot 冲突的 gradle 依赖项 : google oauth client,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48340422/

相关文章:

java - 在oracle数据库中调用java存储过程时出错

java - 尝试从程序的主方法调用父类(super class)方法时生成错误

java - 访问我的资源文件夹中的文件 Elastic Beanstalk/Spring Boot

Java Spring启动 Controller @RequestParam给出错误 "Required String parameter '名称'不存在”

spring - 确定 Spring 模块和其他库的兼容版本

android - Android Studio Mac全新安装-错误后错误,错误后错误

java - INetAddress 直接实例化

java - 将 json 解析为 java 对象时出错 : java. lang.NullPointerException

java - Gradle 覆盖默认检查任务

android-studio - 终端中的build.gradle文件错误