我正在构建一个Web应用程序,我正在使用Dropwizard 1.3.0,它依赖于jetty-io 9.4.8。这种依赖性与另一个包(dropwizard-websocket-jee7-bundle 2.0.0)有冲突,因为它似乎获取了错误的版本号。
我调查了tha包,找到了9.4.x - AbstractWebSocketConnection.java中9.3.x - AbstractWebSocketConnection.java重命名的方法。问题是即使在Gradle中依赖树显示我获取了9.4.8(我需要的新的),我仍然得到较旧的9.3.x java文件,这会导致冲突。我试图使高速缓存/重新启动失效并重建整个项目,但我似乎总是得到过时的文件。
有什么可能的解决方案?
答案 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