mirror of
https://github.com/mapstruct/mapstruct.git
synced 2025-07-12 00:00:08 +08:00
For some reason when using annotationProcessorPaths IntelliJ includes the provided and test scoped dependencies on the annotation processor paths. With this change there would be no test dependencies that IntelliJ can add.
358 lines
14 KiB
XML
358 lines
14 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.4.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 />
|
|
</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>provided</scope>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
<!-- Test -->
|
|
<dependency>
|
|
<groupId>junit</groupId>
|
|
<artifactId>junit</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>
|
|
|
|
<!-- 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>
|
|
|
|
<!-- 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>
|
|
</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>
|
|
</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>
|
|
<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>
|
|
<version>2.3.1</version>
|
|
<scope>provided</scope>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
</dependencies>
|
|
</profile>
|
|
</profiles>
|
|
</project>
|