redhat-developer / redhat-developer/vscode-java

Maven multi-module project mapstruct duplicate generation

オープン
#3,668 コメント 9 件 リアクション 0 件 担当者 1 名 GitHub で見る

@snjeza がすでに取り組んでいます。

2025年3月11日 から。

upstream
主要言語
TypeScript
スター
2.3k
フォーク
546
平均マージ
20時間 1分
マージ済み PR(30日)
11

説明

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.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。