我正在尝试在 Spring boot 应用程序中运行 Google Calendar Java 示例。 Google 日历示例在单独运行时按预期运行,但当它们一起运行时,其中一个依赖项与 Spring boot 依赖项发生冲突。
启动 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;
当然,这意味着 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/