【问题标题】:Maven, two third parties using incompatible versions of a libMaven,两个第三方使用不兼容的库版本
【发布时间】:2017-03-01 19:30:15
【问题描述】:

我有一个使用两个第三方库的项目。而这两个都使用 org.eclipse.jetty,但是完全不同的版本。树是这样的:

[INFO] +- com.some.package:my-core-lib:jar:1.0-SNAPSHOT:compile
[INFO] |  \- org.apache.samza:samza-core_2.10:jar:0.9.1:compile
[INFO] |     \- org.eclipse.jetty:jetty-webapp:jar:8.1.8.v20121106:compile
[INFO] |        +- org.eclipse.jetty:jetty-xml:jar:8.1.8.v20121106:compile
[INFO] |        |  \- org.eclipse.jetty:jetty-util:jar:8.1.8.v20121106:compile
[INFO] |        \- org.eclipse.jetty:jetty-servlet:jar:8.1.8.v20121106:compile
[INFO] |           \- org.eclipse.jetty:jetty-security:jar:8.1.8.v20121106:compile
[INFO] |              \- (org.eclipse.jetty:jetty-server:jar:8.1.8.v20121106:compile - omitted for conflict with 9.2.18.v20160721)
[INFO] \- come:third-party-two:jar:2.0.3:compile
[INFO]    +- org.eclipse.jetty.websocket:websocket-client:jar:9.2.18.v20160721:compile
[INFO]    |  +- org.eclipse.jetty:jetty-io:jar:9.2.18.v20160721:compile
[INFO]    |  \- org.eclipse.jetty.websocket:websocket-common:jar:9.2.18.v20160721:compile
[INFO]    |     \- (org.eclipse.jetty:jetty-io:jar:9.2.18.v20160721:compile - omitted for duplicate)
[INFO]    +- org.eclipse.jetty:jetty-server:jar:9.2.18.v20160721:compile
[INFO]    |  +- org.eclipse.jetty:jetty-http:jar:9.2.18.v20160721:compile
[INFO]    |  \- (org.eclipse.jetty:jetty-io:jar:9.2.18.v20160721:compile - omitted for duplicate)
[INFO]    \- org.eclipse.jetty.websocket:websocket-server:jar:9.2.18.v20160721:compile
[INFO]       \- (org.eclipse.jetty:jetty-http:jar:9.2.18.v20160721:compile - omitted for duplicate)

我不能要求这两方中的任何一方改变他们的依赖关系。有没有办法让他们使用正确的版本? 非常感谢!

【问题讨论】:

标签: java maven maven-2 maven-3 pom.xml


【解决方案1】:

通常,在 Maven 中,您只能拥有给定依赖项的一个版本。因此,首先,您应该尝试使用不同版本的 jetty(从较新的版本开始)编译和测试您的程序,以确定您是否找到适合所有人的版本。您可以通过在dependencyManagement 部分中设置版本来做到这一点。

如果你没有找到兼容的版本,你就会遇到麻烦。您可以通过一些技巧尝试加载两个 jar,但如果它们具有相同名称的类(很可能),则类加载器只能加载其中一个。可能还有一些用于重命名类的工具,但这可能会变得非常混乱。

【讨论】:

    猜你喜欢
    • 2021-10-09
    • 2016-10-12
    • 1970-01-01
    • 2019-05-19
    • 1970-01-01
    • 2016-03-11
    • 2016-07-08
    • 2013-01-13
    • 2018-05-20
    相关资源
    最近更新 更多