一次使用谷歌番石榴和谷歌收藏时的例外情况

时间:2012-11-02 07:35:41

标签: java dependencies resolve

我的java代码依赖于2个库A和B

A依赖于GoogleCollections B有依赖GoogleGuava r10;

Now when i build  my code everything works fine.But when i run i get following exception

java.lang.NoSuchMethodError: com.google.common.collect.ImmutableList.copyOf([Ljava/lang/Object;)Lcom/google/common/collect/ImmutableList;
    at com.abc.Pqr$Builder.withXYZ(ExponentialBackoffRetryPolicy.java:329)

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

如果您的幸运....仅包含您所依赖的包含ImmutableList的最新版本的GoogleCollections。

答案 1 :(得分:0)

Google Collections已被弃用并转移到Guava中。从A中排除它。使用Maven,您可以使用项目的 POM中依赖项标记下的排除标记来执行此操作:

    <dependency>
        <groupId>org.project</groupId>
        <artifactId>library-a</artifactId>
        <version>[version]</version>
        <exclusions>
            <exclusion>
                <!-- whatever the correct values are -->
                <artifactId>google-collections</artifactId>
                <groupId>google-collections</groupId>
            </exclusion>
        </exclusions>
    </dependency>