Chainweaver(Pact)修改模块名仍报definition name conflict: mint-kmp错误

报错信息
1:1definition name conflict: mint-kmp
排查解决步骤
这个报错核心是构建过程中识别到了两个重名的mint-kmp定义,改完模块名仍触发基本是缓存残留或配置没改全,按以下顺序排查即可:
- 全量清理缓存后重新同步
改模块名后残留的Gradle构建缓存、IDE缓存是最高发的诱因。先在项目根目录执行命令清理构建产物:
Linux/macOS 执行:./gradlew clean
Windows 执行:gradlew.bat clean
之后关闭开发IDE,手动删除项目根目录下的.gradle、.idea文件夹,以及所有子模块内的build文件夹,重新打开项目等待Gradle同步完成后再验证。 - 检查Settings配置的重复声明
打开根目录的settings.gradle(或KTS版本的settings.gradle.kts),全局搜索mint-kmp关键词,确认是否存在重复的include语句:比如改了模块文件夹名后旧的include(":mint-kmp")语句没删除,或是不同路径下的两个模块被设置了相同的模块名,删掉冗余配置、修正重复命名即可。 - 检查模块构建脚本的重名配置
打开对应KMP模块的build.gradle(或build.gradle.kts),重点检查两处:一是KMP配置块、Android目标配置块里的namespace、project.name字段是否被重复设为mint-kmp;二是如果配置了Maven发布逻辑,检查artifactId是否和其他模块、引入的第三方依赖重名。如果是和三方依赖重名,给自己的模块加专属前缀做区分即可,比如改成{你的组织前缀}-mint-kmp。 - 排查复合构建的跨项目重名
如果项目用了includeBuild引入其他本地项目做复合构建,全局搜索所有被引入项目的配置文件,看是否存在同名的mint-kmp模块,跨项目的同名模块同样会触发定义冲突,修改其中一方的模块名,或是在includeBuild配置里添加模块重命名规则即可解决。
内容的提问来源于stack exchange,提问作者Kwezy
相关产品推荐
相关产品推荐

