redhat-developer / redhat-developer/vscode-java

Maven multi-module project mapstruct duplicate generation

Đang mở
#3,668 9 bình luận 0 reaction 1 người được giao Xem trên GitHub

@snjeza đang làm issue này rồi.

Từ ngày 11/3/2025.

upstream
Ngôn ngữ chính
TypeScript
Star
2.3k
Fork
546
Merge trung bình
20 giờ 1 phút
Pull request đã merge (30 ngày)
11

Mô tả

Environment
  • Operating System: Windows 10 22H2
  • JDK version: openjdk 21.0.2
  • Visual Studio Code version: 1.89.1
  • Java extension version: v1.32.2024053108 (pre-release)
Steps To Reproduce
  1. Create a Maven multi-module project with the following structure:
    ruoyi-parent
  • ruoyi-admin
    • dependency: ruoyi-modeles/ruoyi-demo
    • dependency: ruoyi-modeles/ruoyi-system
  • ruoyi-modeles
    • ruoyi-demo
      • [mapper auto-generation here]
    • ruoyi-system
      • [mapper auto-generation here]
  1. Build the project.
Internal error in the mapping processor: java.lang.RuntimeException: javax.annotation.processing.FilerException: 
Source file already created: /ruoyi-admin/target/generated-sources/annotations/com/ruoyi/system/domain/vo/SysTenantVoToTenantListVoMapperImpl.java at
org.mapstruct.ap.internal.processor.MapperRenderingProcessor.createSourceFile(MapperRenderingProcessor.java:59)  	at
org.mapstruct.ap.internal.processor.MapperRenderingProcessor.writeToSourceFile(MapperRenderingProcessor.java:39)  	at
org.mapstruct.ap.internal.processor.MapperRenderingProcessor.process(MapperRenderingProcessor.java:29)  	at 
org.mapstruct.ap.internal.processor.MapperRenderingProcessor.process(MapperRenderingProcessor.java:24)  	at 
org.mapstruct.ap.MappingProcessor.process(MappingProcessor.java:350)  	at 
org.mapstruct.ap.MappingProcessor.processMapperTypeElement(MappingProcessor.java:330)  	at 
org.mapstruct.ap.MappingProcessor.processMapperElements(MappingProcessor.java:279)  	at 
org.mapstruct.ap.MappingProcessor.process(MappingProcessor.java:174)  	at 
org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.handleProcessor(RoundDispatcher.java:141)  	at 
org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.round(RoundDispatcher.java:112)  	at 
org.eclipse.jdt.internal.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManager.java:172)  	at 
org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeAnnotationProcessorManager.processAnnotations(IdeAnnotationProcessorManager.java:134)  	at org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:952)  	at 
org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:449)  	at 
org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:468)  	at 
org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:425)  	at 
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:410)  	at 
org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:211)  	at 
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:341)  	at 
org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:79)  	at 
org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:286)  	at 
org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:192)  	at 
org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:1077)  	at 
org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)  	at 
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:296)  	at 
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:352)  	at 
org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:441)  	at 
org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)  	at 
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:444)  	at 
org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:555)  	at 
org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:503)  	at 
org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:585)  	at 
org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:207)  	at 
org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:300)  	at 
org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)  Caused by: javax.annotation.processing.FilerException: Source file already created: /ruoyi-admin/target/generated-sources/annotations/com/ruoyi/system/domain/vo/SysTenantVoToTenantListVoMapperImpl.java  	at 
org.eclipse.jdt.internal.apt.pluggable.core.filer.IdeFilerImpl.createSourceFile(IdeFilerImpl.java:161)  	at 
org.mapstruct.ap.internal.processor.MapperRenderingProcessor.createSourceFile(MapperRenderingProcessor.java:56)  	... 34 more 
Current Result

The mapper files are automatically generated in the generated-sources directory of both the parent and child modules.

Expected Result

The mapper files should be generated only in the respective module's generated-sources directory where the mappers are defined.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.