mirror of
https://github.com/mapstruct/mapstruct.git
synced 2025-07-12 00:00:08 +08:00
393 lines
16 KiB
XML
393 lines
16 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
|
|
Copyright MapStruct Authors.
|
|
|
|
Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
-->
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<parent>
|
|
<groupId>org.mapstruct</groupId>
|
|
<artifactId>mapstruct-parent</artifactId>
|
|
<version>1.7.0-SNAPSHOT</version>
|
|
<relativePath>../parent/pom.xml</relativePath>
|
|
</parent>
|
|
|
|
<artifactId>mapstruct-processor</artifactId>
|
|
<packaging>jar</packaging>
|
|
<name>MapStruct Processor</name>
|
|
|
|
<properties>
|
|
<!-- Netbeans has a problem when we use late binding with @ in the surefire arg line.
|
|
Therefore we set this empty property here-->
|
|
<jacocoArgLine />
|
|
<minimum.java.version>21</minimum.java.version>
|
|
</properties>
|
|
|
|
<dependencies>
|
|
<!-- Compile -->
|
|
<dependency>
|
|
<groupId>org.freemarker</groupId>
|
|
<artifactId>freemarker</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.mapstruct.tools.gem</groupId>
|
|
<artifactId>gem-api</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>${project.groupId}</groupId>
|
|
<artifactId>mapstruct</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.eclipse.tycho</groupId>
|
|
<artifactId>tycho-compiler-jdt</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<!-- Test -->
|
|
<dependency>
|
|
<groupId>org.junit.jupiter</groupId>
|
|
<artifactId>junit-jupiter-api</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.junit.jupiter</groupId>
|
|
<artifactId>junit-jupiter-engine</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.assertj</groupId>
|
|
<artifactId>assertj-core</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.google.guava</groupId>
|
|
<artifactId>guava</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.puppycrawl.tools</groupId>
|
|
<artifactId>checkstyle</artifactId>
|
|
<scope>test</scope>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>com.sun</groupId>
|
|
<artifactId>tools</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>javax.inject</groupId>
|
|
<artifactId>javax.inject</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>jakarta.inject</groupId>
|
|
<artifactId>jakarta.inject-api</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>jakarta.enterprise</groupId>
|
|
<artifactId>jakarta.enterprise.cdi-api</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<!-- plexus-container-default is a runtime-dependency of the tycho-compiler -->
|
|
<dependency>
|
|
<groupId>org.codehaus.plexus</groupId>
|
|
<artifactId>plexus-container-default</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<!-- Spring -->
|
|
<dependency>
|
|
<groupId>org.springframework</groupId>
|
|
<artifactId>spring-test</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework</groupId>
|
|
<artifactId>spring-beans</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework</groupId>
|
|
<artifactId>spring-context</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.junit.platform</groupId>
|
|
<artifactId>junit-platform-launcher</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.junit-pioneer</groupId>
|
|
<artifactId>junit-pioneer</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<!-- There is no compile dependency to Joda-Time; It's only required for testing the Joda conversions -->
|
|
<dependency>
|
|
<groupId>joda-time</groupId>
|
|
<artifactId>joda-time</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>jakarta.xml.bind</groupId>
|
|
<artifactId>jakarta.xml.bind-api</artifactId>
|
|
<scope>provided</scope>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
</dependencies>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-jar-plugin</artifactId>
|
|
<configuration>
|
|
<archive>
|
|
<manifest>
|
|
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
|
|
</manifest>
|
|
<manifestEntries>
|
|
<Automatic-Module-Name>org.mapstruct.processor</Automatic-Module-Name>
|
|
<Spring-Boot-Jar-Type>annotation-processor</Spring-Boot-Jar-Type>
|
|
</manifestEntries>
|
|
</archive>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<configuration>
|
|
<!-- to get jacoco report we need to set argLine in surefire,
|
|
without this snippet the jacoco argLine is lost -->
|
|
<!-- The property must be prefixed with @ and not $. The reason for this is the usage of late
|
|
binding of variables by other plugins (jacoco in this case)-->
|
|
<argLine>@{jacocoArgLine} -Xms1024m -Xmx3072m</argLine>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-resources-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>copy-mapstruct-license</id>
|
|
<phase>prepare-package</phase>
|
|
<goals>
|
|
<goal>copy-resources</goal>
|
|
</goals>
|
|
<configuration>
|
|
<outputDirectory>${project.build.directory}/classes/META-INF</outputDirectory>
|
|
<resources>
|
|
<resource>
|
|
<directory>${basedir}/..</directory>
|
|
<filtering>false</filtering>
|
|
<include>LICENSE.txt</include>
|
|
</resource>
|
|
</resources>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-shade-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>processor-deps-shading</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>shade</goal>
|
|
</goals>
|
|
<configuration>
|
|
<minimizeJar>true</minimizeJar>
|
|
<artifactSet>
|
|
<includes>
|
|
<include>org.freemarker:*</include>
|
|
<include>org.mapstruct.tools.gem:gem-api</include>
|
|
</includes>
|
|
</artifactSet>
|
|
<filters>
|
|
<filter>
|
|
<artifact>org.freemarker:freemarker</artifact>
|
|
<excludes>
|
|
<exclude>META-INF/*.*</exclude>
|
|
</excludes>
|
|
</filter>
|
|
<filter>
|
|
<artifact>org.mapstruct.tools.gem:gem-api</artifact>
|
|
<excludes>
|
|
<exclude>META-INF/*.*</exclude>
|
|
<exclude>**/GemDefinition.class</exclude>
|
|
<exclude>**/GemDefinitions.class</exclude>
|
|
</excludes>
|
|
</filter>
|
|
</filters>
|
|
<relocations>
|
|
<relocation>
|
|
<pattern>freemarker</pattern>
|
|
<shadedPattern>org.mapstruct.ap.shaded.freemarker</shadedPattern>
|
|
</relocation>
|
|
<relocation>
|
|
<pattern>org.mapstruct.tools.gem</pattern>
|
|
<shadedPattern>org.mapstruct.ap.shaded.org.mapstruct.tools.gem</shadedPattern>
|
|
</relocation>
|
|
</relocations>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<!-- The flatten plugin should run after the shading is done -->
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>flatten-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<!-- Tidy up all POMs before they are published -->
|
|
<id>flatten</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>flatten</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>unpack-freemarker-license</id>
|
|
<phase>prepare-package</phase>
|
|
<goals>
|
|
<goal>unpack</goal>
|
|
</goals>
|
|
<configuration>
|
|
<artifactItems>
|
|
<artifactItem>
|
|
<groupId>org.freemarker</groupId>
|
|
<artifactId>freemarker</artifactId>
|
|
<outputDirectory>${project.build.directory}/classes/META-INF/freemarker</outputDirectory>
|
|
<includes>META-INF/LICENSE.txt,META-INF/NOTICE.txt</includes>
|
|
</artifactItem>
|
|
</artifactItems>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<configuration>
|
|
<testRelease>${minimum.java.version}</testRelease>
|
|
<annotationProcessorPaths>
|
|
<path>
|
|
<groupId>org.mapstruct.tools.gem</groupId>
|
|
<artifactId>gem-processor</artifactId>
|
|
<version>${org.mapstruct.gem.version}</version>
|
|
</path>
|
|
<!-- other annotation processors -->
|
|
</annotationProcessorPaths>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-checkstyle-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>check-style</id>
|
|
<phase>verify</phase>
|
|
<goals>
|
|
<goal>checkstyle</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.jacoco</groupId>
|
|
<artifactId>jacoco-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<goals>
|
|
<goal>prepare-agent</goal>
|
|
</goals>
|
|
</execution>
|
|
<execution>
|
|
<id>report</id>
|
|
<phase>prepare-package</phase>
|
|
<goals>
|
|
<goal>report</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
<configuration>
|
|
<propertyName>jacocoArgLine</propertyName>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-source-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-sources</id>
|
|
<phase>verify</phase>
|
|
<goals>
|
|
<goal>jar</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>de.thetaphi</groupId>
|
|
<artifactId>forbiddenapis</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<goals>
|
|
<goal>check</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>com.github.siom79.japicmp</groupId>
|
|
<artifactId>japicmp-maven-plugin</artifactId>
|
|
<configuration>
|
|
<parameter>
|
|
<includes>
|
|
<include>org.mapstruct.ap</include>
|
|
</includes>
|
|
<excludes>
|
|
<exclude>org.mapstruct.ap.internal</exclude>
|
|
<exclude>org.mapstruct.ap.shaded</exclude>
|
|
</excludes>
|
|
</parameter>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
|
|
<profiles>
|
|
<profile>
|
|
<id>jdk-11-or-newer</id>
|
|
<activation>
|
|
<jdk>[11</jdk>
|
|
</activation>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>javax.xml.bind</groupId>
|
|
<artifactId>jaxb-api</artifactId>
|
|
<scope>provided</scope>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
</dependencies>
|
|
</profile>
|
|
</profiles>
|
|
</project>
|