You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maven项目测试运行依赖冲突求助:slf4j-api版本重复

Maven依赖冲突解决:slf4j-api重复定义错误

问题说明

运行Maven项目测试时触发依赖错误,报错内容:

'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: org.slf4j:slf4j-api:jar -> version 2.0.0-alpha0 vs 2.0.3 @ line 65, column 15

从提供的pom.xml可以看到,org.slf4j:slf4j-api被重复声明了两次,版本分别为2.0.0-alpha0和2.0.3,这是导致Maven报错的直接原因。

解决方案

1. 删除重复依赖

直接移除其中一个重复的slf4j-api依赖,推荐保留较新的2.0.3版本,同时统一所有slf4j相关依赖的版本(避免版本不兼容)。修改后的核心配置如下:

<dependencies>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>4.5.0</version>
    </dependency>
    <!-- 保留最新版本的slf4j-api,移除旧版本声明 -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>2.0.3</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
         <version>6.14.3</version>
        <scope>test</scope>
    </dependency>
    <dependency>
         <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-adb</artifactId>
        <version>${axis2.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-transport-http</artifactId>
        <version>${axis2.version}</version>
        <scope>provided</scope>
    </dependency>
    <!-- 统一slf4j实现类版本,与api版本保持一致 -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>2.0.3</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>2.0.3</version>
        <type>pom</type>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-transport-local</artifactId>
        <version>${axis2.version}</version>
        <scope>provided</scope>
    </dependency>
</dependencies>
<build>
    <plugins>
        <!-- 保留单个最新版本的maven-compiler-plugin,移除重复声明,同时升级JDK版本 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.10.1</version>
            <configuration>
                <source>8</source>
                <target>8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

2. 额外优化项

  • 插件与依赖分离:maven-compiler-plugin是Maven插件,不应放在<dependencies>中,必须移到<build><plugins>下,同时删除重复的插件声明。
  • 统一版本兼容性:slf4j的API和实现类(如slf4j-simple、slf4j-log4j12)版本必须保持一致,否则可能出现运行时异常。
  • 升级JDK版本:原配置中source/target为1.5,过于老旧,建议升级到1.8或更高版本,适配当前依赖的最低要求。

3. 验证修复

执行以下命令清理并构建项目,确认错误消失:

mvn clean install

内容的提问来源于stack exchange,提问作者Ruturaj Sharbidre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 18:01:26