为什么Gradle解析版本号错误的包?

时间:2018-03-19 11:04:54

标签: java gradle intellij-idea jetty dropwizard

我正在构建一个Web应用程序,我正在使用Dropwizard 1.3.0,它依赖于jetty-io 9.4.8。这种依赖性与另一个包(dropwizard-websocket-jee7-bundle 2.0.0)有冲突,因为它似乎获取了错误的版本号。

我调查了tha包,找到了9.4.x - AbstractWebSocketConnection.java9.3.x - AbstractWebSocketConnection.java重命名的方法。问题是即使在Gradle中依赖树显示我获取了9.4.8(我需要的新的),我仍然得到较旧的9.3.x java文件,这会导致冲突。我试图使高速缓存/重新启动失效并重建整个项目,但我似乎总是得到过时的文件。

有什么可能的解决方案?

2 个答案:

答案 0 :(得分:1)

如果您的错误类是由传递依赖项导入的,请尝试排除显式传递依赖项。 例如,如果您所需的库是' my.group:requiredLibrary:2.0.0'在mygroup中还有另一个版本:someDependency:0.1.5'你可以这样做:

dependencies{
  compile 'my.group:requiredLibrary:2.0.0'
  compile ('my.group:someDependency:0.1.5'){
      exclude group: 'my.group'  module:'requiredLibrary'
  }
}

答案 1 :(得分:0)

尝试在build.gradle中强制使用特定版本 示例:https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html