<?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>
    <tika.version>1.24.1</tika.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>

    <!-- Document reading -->
    <dependency>
      <groupId>org.apache.tika</groupId>
      <artifactId>tika-core</artifactId>
      <version>${tika.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.tika</groupId>
      <artifactId>tika-bundle</artifactId>
      <version>${tika.version}</version>
    </dependency>
    <dependency>
      <groupId>net.sourceforge.tess4j</groupId>
      <artifactId>tess4j</artifactId>
      <version>4.5.1</version>
      <exclusions>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>jcl-over-slf4j</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>log4j-over-slf4j</artifactId>
        </exclusion>
      </exclusions>
    </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>
        <configuration>
          <annotationProcessorPaths>
            <path>
              <groupId>info.picocli</groupId>
              <artifactId>picocli-codegen</artifactId>
              <version>${picocli.version}</version>
            </path>
          </annotationProcessorPaths>
          <compilerArgs>
            <arg>-Aproject=${project.groupId}/${project.artifactId}</arg>
          </compilerArgs>
        </configuration>
      </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-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-dependencies</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <outputDirectory>
                ${project.build.directory}/libs
              </outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.2.0</version>
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <classpathPrefix>libs/</classpathPrefix>
              <mainClass>
                eu.mulk.aendggner.AendGgner
              </mainClass>
            </manifest>
          </archive>
        </configuration>
      </plugin>

    </plugins>

  </build>

</project>
