在Eclipse运行Selenium TestNG项目时遇maven-surefire-plugin:2.21依赖解析失败求助
我之前也碰到过类似的情况,这个问题大多是Maven没法正常从仓库拉取插件或它的依赖导致的,给你几个实用的解决步骤,应该能搞定:
检查Maven仓库配置
国内访问Maven中央仓库经常会有速度慢或者连接不上的问题,建议配置阿里云镜像来提速。打开你的settings.xml(一般在~/.m2/目录下,或者Eclipse中配置的Maven路径里),添加镜像配置:<mirrors> <mirror> <id>aliyunmaven</id> <mirrorOf>central</mirrorOf> <url>https://maven.aliyun.com/repository/public</url> </mirror> </mirrors>之后在Eclipse里通过
Window > Preferences > Maven > User Settings确认配置文件路径是否正确,应用后重启Eclipse试试。清理Maven本地缓存
本地仓库的缓存文件可能损坏了,导致依赖解析失败。手动删除~/.m2/repository/org/apache/maven/plugins/maven-surefire-plugin/2.21这个目录,然后右键你的项目,依次选择Maven > Clean和Maven > Update Project,记得勾选"Force Update of Snapshots/Releases"选项,强制刷新依赖。完善插件的依赖配置
有时候只指定插件版本不够,需要明确配置它的TestNG依赖,确保和你的Selenium项目适配。在项目的pom.xml里添加完整的插件配置:<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.21</version> <dependencies> <dependency> <groupId>org.apache.maven.surefire</groupId> <artifactId>surefire-testng</artifactId> <version>2.21</version> </dependency> </dependencies> </plugin> </plugins> </build>尝试升级插件版本
2.21版本确实比较老旧了,可能存在仓库中该版本依赖被移除或者兼容性问题。可以试试升级到较新的稳定版本,比如3.0.0-M7,修改pom.xml里的插件版本:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M7</version> </plugin>新版本通常修复了很多依赖解析的问题,也更兼容最新的TestNG和Selenium版本。
检查网络和代理设置
如果是网络问题导致无法访问仓库,切换到稳定的网络环境试试。另外,如果你在公司网络下,可能需要配置代理,在Eclipse中通过Window > Preferences > General > Network Connections检查代理配置是否正确。
内容的提问来源于stack exchange,提问作者Manali Malkani

