【发布时间】:2018-01-19 11:47:56
【问题描述】:
我正在尝试在我的 Spring 引导应用程序中运行 Google 日历 Java 示例。 Google 日历示例在单独运行时按预期运行,但其中一个依赖项与 Spring 启动依赖项在它们一起运行时发生冲突。
并在启动 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 来说,我会感谢任何帮助或建议。
感谢您的宝贵时间 :)
【问题讨论】:
-
你总是可以自己声明一个具有固定版本号的依赖项,它将优先于其他传递依赖项(在 Maven 中这是通过 dependencyManagement 完成的。不知道如何在 graddle 中做到这一点)
标签: java spring-boot gradle