An IntelliJ IDEA plugin for working with MapStruct
MapStruct is a Java annotation processor for the generation of type-safe and performant mappers for Java bean classes.
To learn more about MapStruct have a look at the mapstruct repository or the website
target
and source
properties in @Mapping
annotation (nested properties also work)target
and source
properties in @ValueMapping
annotationcomponentModel
in @Mapper
and @MapperConfig
annotationsqualifiedByName
in @Mapping
annotationtarget
and source
to setters / gettersMapping#qualifiedByName
target
and source
and find usages of setters / getters in @Mapping
annotationstarget
and source
@Mapper
or @MapperConfig
annotation missingunmappedTargetPolicy
to determine the severity that should be usedsource
defined in @Mapping
annotationsource
in @Mapping
annotation defined with quick fixes: Remove source
. Remove constant
. Remove expression
. Use constant
as defaultValue
. Use expression
as defaultExpression
. @Mapping
annotation defined with quick fixes: Remove defaultValue
. Remove defaultExpression
.target
mapped more than once by @Mapping
annotations with quick fixes: Remove annotation and change target property.*
used as a source in @Mapping
annotation with quick fixes: Replace *
with method parameter name.The MapStruct plugin requires Java 11 or later
Since the project has been migrated to the Gradle and [Gradle IntelliJ plugin][gradle-intellij-plugin], the build process is much simpler. The only thing to build the plugin is to run:
./gradlew build
All required dependencies like Grammar-Kit, JFlex are downloaded in the background and triggered properly during the build process. You can also test the plugin easily with running:
./gradlew runIde
All of the gradle tasks can be connected to the IntelliJ debugger, so the development process is very easy.
The MapStruct plugin is licensed under the Apache License, Version 2.0 (the "License"); you may not use it except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0.