当前位置: 首页 > news >正文

IDEA与Gradle构建冲突,导致java重复类的解决方案

项目构建总是报错:

错误提示1:java:重复类

错误提示2:Internal error in the mapping processor: java.lang.RuntimeException: javax.annotation.processing.FilerException: Attempt to recreate a file

排查发现build/generated/sources/annotationProcessor路径下会生成2个同名类导致,

IDEA和Gradle会各自构建生成文件造成冲突。

(起初以为是mapstruct与lombok冲突导致,后附mapstruct与lombok的引入配置)

Gradle构建的输出路径是build

IDEA构建的输出路径是out

解决方案:

IDEA-》设置-》构建、执行、部署-》构建工具-》Gradle

使用此工具构建/运行:IntelliJ IDEA

使用此工具运行测试:IntelliJ IDEA

使用Gradle执行Clean后(会清除build文件夹),

再使用IDEA重新构建(输出到out)即可。

注意:当build文件夹和out文件夹同时存在时,会使用build文件夹,所以需要先清除

环境:

Jdk17+Spring boot 3.3.13+Gradle

build.gradle文件内容:

plugins { id 'java' id 'org.springframework.boot' version '3.3.13' id 'io.spring.dependency-management' version '1.1.7' } group = 'xxxx' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } tasks.withType(JavaCompile).configureEach { options.encoding = "UTF-8" } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { maven { url 'https://maven.aliyun.com/repository/public' } mavenCentral() } dependencies { // Spring Boot 核心依赖 implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-aop' annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' //略... implementation 'org.mapstruct:mapstruct:1.5.5.Final' annotationProcessor "org.mapstruct:mapstruct-processor:1.5.5.Final" annotationProcessor 'org.projectlombok:lombok-mapstruct-binding:0.2.0' //略... } tasks.named('test') { useJUnitPlatform() }
http://www.jsqmd.com/news/447181/

相关文章:

  • 大型项目测试策略:BackstopJS 场景分组与模块化配置管理终极指南
  • BackstopJS 测试数据隐私保护终极指南:敏感信息屏蔽与测试环境隔离技巧
  • 揭秘Rust Search Extension工作原理:从输入到结果的毫秒级响应
  • 如何高效调试与监控DeepSearcher:日志系统完全指南
  • DeepSearcher+Ollama:本地部署大模型的终极推理方案
  • ntlm_theft源代码解析:Python实现哈希窃取文件生成的核心原理
  • 微信小程序开发完整指南:从组件到云开发的实战教程
  • Crabviz支持哪些编程语言?一文了解LSP驱动的跨语言调用图生成能力
  • Opa vs 传统Web开发:为什么选择函数式语言构建前端应用?
  • MobileNet-Caffe核心代码解析:eval_image.py如何实现图像预测
  • AI驱动元宇宙应用的多模态生成:文本_图像_语音的融合架构
  • DeepSearcher分布式部署终极指南:多节点协同处理方案深度解析
  • 5分钟掌握PHP HTTP消息接口:构建标准化Web应用的核心指南
  • 团队协作新姿势:用Dockerized统一开发工具版本的实战技巧
  • postgresql-event-sourcing快照机制:提升事件溯源性能的关键技巧
  • HTTP-Message性能调优终极指南:5个减少内存占用的流处理技巧
  • Docker4Drupal常见问题排查:从容器启动失败到数据持久化全解决
  • 人工智能伦理评估终极指南:如何用Neorg记录专业咨询过程
  • 如何高效管理Twitter DistributedLog:功能控制与运维实践全指南
  • 为什么Eyeballer是渗透测试工程师的必备AI工具?5大核心功能深度解析
  • 终极指南:Elasticsearch-SQL ExtendedStatsBucket 扩展统计桶聚合完整教程
  • DLL注入新手必看:GH-Injector-Library解决PDB下载与符号解析难题
  • 终极指南:Twitter DistributedLog 监控系统配置与性能优化详解
  • Opa标准库详解:掌握Web开发的核心工具集
  • Flutter响应式管理面板终极指南:如何打造跨平台数据可视化仪表盘
  • 微信小程序语音识别与语音合成完整指南:打造智能语音交互应用
  • 终极指南:如何使用DistributedLog实现高效多流写入与负载均衡
  • 破解字符串难题:CompetitiveProgrammingQuestionBank中的KMP与Rabin-Karp算法详解
  • INFO8010 Deep Learning课程视频与资料汇总:一站式学习资源导航
  • 如何为 Twitter DistributedLog 设计高性能硬件架构:从容量规划到部署优化