<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <modelVersion>4.0.0</modelVersion>

  <groupId>eu.mulk</groupId>
  <artifactId>aendggner</artifactId>
  <version>${revision}</version>

  <properties>
    <maven.compiler.parameters>true</maven.compiler.parameters>
    <maven.compiler.source>15</maven.compiler.source>
    <maven.compiler.target>15</maven.compiler.target>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <enforced.maven-version>3.6.2</enforced.maven-version>

    <antrun-plugin.version>3.0.0</antrun-plugin.version>
    <compiler-plugin.version>3.8.1</compiler-plugin.version>
    <enforcer-plugin.version>3.0.0-M3</enforcer-plugin.version>
    <exec-plugin.version>3.0.0</exec-plugin.version>
    <processor-plugin.version>4.2</processor-plugin.version>
    <resources-plugin.version>3.2.0</resources-plugin.version>
    <shade-plugin.version>3.2.4</shade-plugin.version>
    <spotless-plugin.version>2.4.1</spotless-plugin.version>

    <basic-annotations.version>0.2.0</basic-annotations.version>
    <findbugs-jsr305.version>3.0.2</findbugs-jsr305.version>
    <google.java.format.version>1.8</google.java.format.version>
    <itext7.version>7.1.13</itext7.version>
    <kotlin-annotations.version>1.4.10</kotlin-annotations.version>
    <lanterna.version>3.0.4</lanterna.version>
    <picocli.version>4.3.2</picocli.version>
    <pdfocr.version>1.0.2</pdfocr.version>
    <term4j.version>0.4.0</term4j.version>
  </properties>

  <dependencies>

    <!-- Annotations -->
    <dependency>
      <groupId>pl.tlinkowski.annotation</groupId>
      <artifactId>pl.tlinkowski.annotation.basic</artifactId>
      <version>${basic-annotations.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.google.code.findbugs</groupId>
      <artifactId>jsr305</artifactId>
      <version>${findbugs-jsr305.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jetbrains.kotlin</groupId>
      <artifactId>kotlin-annotations-jvm</artifactId>
      <version>${kotlin-annotations.version}</version>
      <scope>provided</scope>
    </dependency>

    <!-- Command line parsing -->
    <dependency>
      <groupId>info.picocli</groupId>
      <artifactId>picocli</artifactId>
      <version>${picocli.version}</version>
    </dependency>

    <!-- PDF manipulation -->
    <dependency>
      <groupId>com.itextpdf</groupId>
      <artifactId>itext7-core</artifactId>
      <version>${itext7.version}</version>
      <type>pom</type>
    </dependency>
    <dependency>
      <groupId>com.itextpdf</groupId>
      <artifactId>pdfocr-root</artifactId>
      <version>${pdfocr.version}</version>
      <type>pom</type>
    </dependency>
    <dependency>
      <groupId>com.itextpdf</groupId>
      <artifactId>pdfocr-api</artifactId>
      <version>${pdfocr.version}</version>
    </dependency>
    <dependency>
      <groupId>com.itextpdf</groupId>
      <artifactId>pdfocr-tesseract4</artifactId>
      <version>${pdfocr.version}</version>
    </dependency>

    <!-- Terminal output -->
    <dependency>
      <groupId>io.github.dgroup</groupId>
      <artifactId>term4j</artifactId>
      <version>${term4j.version}</version>
    </dependency>
    <dependency>
      <groupId>com.googlecode.lanterna</groupId>
      <artifactId>lanterna</artifactId>
      <version>${lanterna.version}</version>
    </dependency>

  </dependencies>

  <build>

    <pluginManagement>
      <plugins>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>versions-maven-plugin</artifactId>
          <configuration>
            <generateBackupPoms>false</generateBackupPoms>
          </configuration>
        </plugin>

      </plugins>
    </pluginManagement>

    <plugins>

      <!-- Compiler -->
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${compiler-plugin.version}</version>
      </plugin>

      <!-- Resources -->
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>${resources-plugin.version}</version>
      </plugin>

      <!-- Google Java Code Formatter, for enforcing style conventions -->
      <plugin>
        <groupId>com.diffplug.spotless</groupId>
        <artifactId>spotless-maven-plugin</artifactId>
        <version>${spotless-plugin.version}</version>
        <configuration>
          <java>
            <removeUnusedImports/>
            <importOrder>
              <order>java,javax,org,com,de,io,dagger,eu.mulk,</order>
            </importOrder>
            <googleJavaFormat>
              <version>${google.java.format.version}</version>
              <style>GOOGLE</style>
            </googleJavaFormat>
          </java>
        </configuration>
      </plugin>

      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>${antrun-plugin.version}</version>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>${enforcer-plugin.version}</version>
        <executions>
          <execution>
            <id>enforce-maven</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <version>${enforced.maven-version}</version>
                </requireMavenVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>${exec-plugin.version}</version>
        <configuration>
          <mainClass>eu.mulk.aendggner.AendGgner</mainClass>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>${shade-plugin.version}</version>
        <executions>
          <execution>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <shadedArtifactAttached>true</shadedArtifactAttached>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <mainClass>eu.mulk.aendggner.AendGgner</mainClass>
                </transformer>
              </transformers>
            </configuration>
          </execution>
        </executions>
      </plugin>

    </plugins>

  </build>

</project>
