当前位置: 首页 > 知识库问答 >
问题:

无法解决依赖项版本冲突(NoSuchMethodError的)

弘承业
2023-03-14

我在使用commons-codec库时遇到(NoSuchMethodError)问题,这里有我的POM:`http://maven.apache.org/xsd/maven-4.0.0.xsd“>4.0.0

<groupId>com.playtika</groupId>
<artifactId>InfraSessionsBuild</artifactId>
<version>1.0</version>
<packaging>jar</packaging>

<name>InfraSessionsBuild</name>
<url>http://maven.apache.org</url>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <dependency>
        <groupId>InfraSession</groupId>
        <artifactId>infra_session</artifactId>
        <version>1.0.13</version>
        <exclusions>
            <exclusion>
                <groupId>com.playtika</groupId>
                <artifactId>playtika-common</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
            </exclusion>
            <exclusion>
                <artifactId>ConfigurationManager</artifactId>
                <groupId>
                    com.playtika.services.configuration
                </groupId>
            </exclusion>
            <exclusion>
                <artifactId>slf4j-api</artifactId>
                <groupId>org.slf4j</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>com.playtika</groupId>
        <artifactId>game-event</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<distributionManagement>
    <repository>
        <id>artifactory</id>
        <name>artifactory-releases</name>
        <url>http://artifactory.corp/artifactory/libs-release-local</url>
    </repository>

    <snapshotRepository>
        <id>artifactory-snapshot</id>
        <name>artifactory-snapshot</name>
        <url>http://artifactory.corp/artifactory/libs-snapshot-local</url>
    </snapshotRepository>
</distributionManagement>

<repositories>
    <repository>
        <id>spy</id>
        <name>Spy Repository</name>
        <layout>default</layout>
        <url>http://files.couchbase.com/maven2/</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>

    <repository>
        <id>maven2-repository.java.net</id>
        <name>Java.net Repository for Maven</name>
        <url>http://download.java.net/maven/2/</url>
        <layout>default</layout>
    </repository>

    <repository>
        <id>artifactory</id>
        <name>artifactory-releases</name>
        <url>http://artifactory.corp/artifactory/libs-release-local</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>

    <repository>
        <id>artifactory-snapshot</id>
        <name>artifactory-snapshot</name>
        <url>http://artifactory.corp/artifactory/libs-snapshot-local</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <updatePolicy>always</updatePolicy>
            <enabled>true</enabled>
        </snapshots>
    </repository>

    <repository>
        <id>com.cloudera.repository.releases</id>
        <url>https://repository.cloudera.com/content/groups/public/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>com.cloudera.repository.thirdparty</id>
        <url>https://repository.cloudera.com/content/repositories/third-party/

        </url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>resin-hessian</id>
        <name>Hessian</name>
        <url>http://caucho.com/m2</url>
    </repository>
</repositories>

<build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <finalName>InfraSessionAPI</finalName>
                <appendAssemblyId>false</appendAssemblyId>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>com.playtika.InfraSessionAPI</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id> <!-- this is used for inheritance merges -->
                    <phase>package</phase> <!-- bind to the packaging phase -->
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

我使用了exclusions和dependencyManagement,但结果是相同的

12:11:02,487 ERROR [SoapUI] An error occured [TestCase [Copy of Register] failed without assertions
], see error log for details
java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeBase64String([B)Ljava/lang/String;
    at com.couchbase.client.http.HttpUtil.buildAuthHeader(HttpUtil.java:55)

有人能告诉我更好的解决这个问题的方法吗?

共有1个答案

余阳秋
2023-03-14

commons-codec依赖项添加到infra_session项目,并使用更高版本(1.5)解决该依赖项

 类似资料:
  • TL;DR两个gradle插件使用相同依赖项的不同版本,在调用其中一个插件时会导致编译错误。 > 我有一个使用Gradle4编译的Java项目。十、 该项目依赖于两个插件:gradle-jaxb-plugin和serenity-gradle-plugin。 两个插件共享一个依赖项,guice。 我需要升级一个插件(serenety)。升级会导致调用jaxb插件时发生冲突。 我做了一些调查和谷歌搜索

  • 我正在做的项目需要同时使用Elasticsearch和一个依赖项(我没有设计也没有指定它的设计),该依赖项使用Lucene,这两个依赖项之间存在版本冲突。当我尝试启动项目时,下面的错误被吐出来 任何关于是否可以解决而不能够规定依赖或弹性搜索的设计的想法?

  • 目前我正在使用ApacheBeam2.18。GCP(数据流)中的0,我想将其更新为2.20。0 问题是,如果我使用2.20,我会出现以下错误。0而不是2.18。我的pom文件中的0: 我已经看到了其他类似的问题,但我看不到任何与apache梁的关系。 我应该添加或删除哪个依赖项? 这是我的pom文件的样子: 如果我排除以下内容: 关于依赖项的错误消失了,但是,如果我这样做,我将无法完成项目的编译,

  • 我有一个相当大的遗留项目,我正在添加一个组件。此组件使用HtmlUnit。我可以用Maven编译它,但是当我运行它时,我得到: 所以它缺少正确的构造函数。我认为这几乎肯定是中的版本冲突,但我不确定如何解决它。下面是我的(请注意我一直尝试玩的排除和依赖关系管理的所有游戏): 有什么想法吗? 编辑:有人认为这个问题是这个问题的重复,但事实并非如此,因为本例中的依赖类型不是。

  • 问题内容: 我是基于注释编程的新手,并且不知道要为 org.springframework.transaction.annotation.Transactional 添加什么maven工件到我的pom.xml中,我用谷歌搜索(像搜索结果的前5页一样),但是找不到我在寻找。我使用的是Spring3。此外,如果有任何在线教程可以了解有关Spring注释的更多信息。谢谢!! 问题答案: 在spring-

  • 我的项目是个springboot多模块项目,其中2个模块A,B, A的pom文件引用了B,B pom里也引用了A,现在启动报错。怎么能配置pom文件正常启动? 现在是把依赖的代码去掉了,在自己模块在写一遍,但是代码就重复了。希望通过配置文件消除这个问题。