You can obtain a distribution bundle containing the MapStruct binaries, source code and API documentation from GitHub.
If you’re using Maven to build your project add the following to your pom.xml to use MapStruct:
- ...
- <properties>
- <org.mapstruct.version>1.6.3</org.mapstruct.version>
- </properties>
- ...
- <dependencies>
- <dependency>
- <groupId>org.mapstruct</groupId>
- <artifactId>mapstruct</artifactId>
- <version>${org.mapstruct.version}</version>
- </dependency>
- </dependencies>
- ...
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.8.1</version>
- <configuration>
- <source>1.8</source> <!-- depending on your project -->
- <target>1.8</target> <!-- depending on your project -->
- <annotationProcessorPaths>
- <path>
- <groupId>org.mapstruct</groupId>
- <artifactId>mapstruct-processor</artifactId>
- <version>${org.mapstruct.version}</version>
- </path>
- <!-- other annotation processors -->
- </annotationProcessorPaths>
- </configuration>
- </plugin>
- </plugins>
- </build>
When using a modern version of Gradle (>= 4.6), you add something along the following lines to your build.gradle:
- dependencies {
- ...
- implementation 'org.mapstruct:mapstruct:1.6.3'
- annotationProcessor 'org.mapstruct:mapstruct-processor:1.6.3'
- }
If using Gradle => 4.6 and < 5.2 you might want to look at gradle-apt-plugin. There might be some tweaks you want to apply to improve the handling of generated sources.
For older versions of Gradle (< 4.6), use something like this:
- plugins {
- ...
- id 'net.ltgt.apt' version '0.21'
- }
- dependencies {
- ...
- compile 'org.mapstruct:mapstruct:1.6.3'
- apt 'org.mapstruct:mapstruct-processor:1.6.3'
- }
You can find a complete example in the mapstruct-examples project on GitHub.
Add the javac
task configured as follows to your build.xml file in order to enable MapStruct in your Ant-based project. Adjust the paths as required for your project layout.
- ...
- <javac
- srcdir="src/main/java"
- destdir="target/classes"
- classpath="path/to/mapstruct-1.6.3.jar">
- <compilerarg line="-processorpath path/to/mapstruct-processor-1.6.3.jar"/>
- <compilerarg line="-s target/generated-sources"/>
- </javac>
- ...
You can find a complete example in the mapstruct-examples project on GitHub.