【问题标题】:Spring boot conflicting gradle dependancies: google oauth clientSpring Boot 冲突的 gradle 依赖项:google oauth 客户端
【发布时间】: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


【解决方案1】:

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


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

【讨论】:

    【解决方案2】:

    我同意 Albert Mosialek 的观点。 就我而言,我使用的是 maven,我必须插入以下内容:

    <dependency>
        <groupId>com.google.oauth-client</groupId>
        <artifactId>google-oauth-client-jetty</artifactId>
        <version>${project.oauth.version}</version>
        <exclusions>
            <exclusion>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>servlet-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    

    【讨论】:

      【解决方案3】:

      将下面的行添加到文件 build.gradle

      compile'javax.servlet:javax.servlet-api:3.1.0'
      

      我尝试运行正常。

      希望对你有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-17
        • 1970-01-01
        • 1970-01-01
        • 2020-03-31
        • 2019-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多