迁移至Karate 1.3.0.RC1遇构建错误:缺失netty指定jar包
Karate 1.3.0.RC1 升级时 Netty 依赖缺失问题解决方案
问题重现
升级至Karate 1.3.0.RC1时,构建报错:
Could not find netty-resolver-dns-native-macos-4.1.66.Final-osx-aarch_64.jar (io.netty:netty-resolver-dns-native-macos:4.1.66.Final).
该依赖在Maven中央仓库对应路径无法找到,而1.2.0版本可正常构建,但存在官方已在1.3.0中修复的多线程Bug,当前项目基于Karate 0.9.6。
可行解决方案
- 切换至Karate 1.3.0正式版:RC版本可能存在依赖配置疏漏,正式版通常会修正依赖引用逻辑,确保对应依赖包已同步至中央仓库。
- 手动调整Netty依赖:在项目构建文件(pom.xml或build.gradle)中,排除Karate自带的有问题的Netty依赖,替换为可正常下载的兼容版本。示例Maven配置:
<dependency> <groupId>com.intuit.karate</groupId> <artifactId>karate-core</artifactId> <version>1.3.0.RC1</version> <exclusions> <exclusion> <groupId>io.netty</groupId> <artifactId>netty-resolver-dns-native-macos</artifactId> </exclusion> </exclusions> </dependency> <!-- 添加兼容的Netty依赖 --> <dependency> <groupId>io.netty</groupId> <artifactId>netty-resolver-dns-native-macos</artifactId> <version>4.1.77.Final</version> <classifier>osx-aarch_64</classifier> </dependency>
- 检查Maven仓库配置:若使用第三方镜像仓库(如国内镜像),可能存在同步延迟,临时切换回Maven中央仓库重试构建。
- Apple Silicon设备特殊处理:在构建命令中添加系统属性,强制使用兼容的DNS解析实现,绕过native依赖:
mvn clean install -Dnetty.resolver.dns.default-resolver=apple-dns
内容的提问来源于stack exchange,提问作者Michael Cruz
相关产品推荐
相关产品推荐

