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
相关产品推荐
相关产品推荐

