redhat-developer / redhat-developer/vscode-java
Maven multi-module project mapstruct duplicate generation
オープン
@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
- 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]
-
- 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.
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
評価
この issue はまだ評価されていません。