<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.melahn</groupId>
  <artifactId>helm-chartmap</artifactId>
  <name>${project.groupId}:${project.artifactId}</name>
  <version>1.2.0</version>
  <description>A tool for generating Helm Chart dependency reports</description>
  <url>https://github.com/melahn/helm-chartmap</url>
  <inceptionYear>2020</inceptionYear>
  <developers>
    <developer>
      <name>Gregory Melahn</name>
      <email>gregorymelahn@gmail.com</email>
      <organization>melahn.com</organization>
      <organizationUrl>http://melahn.com</organizationUrl>
    </developer>
  </developers>
  <licenses>
    <license>
      <name>The Apache License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
    </license>
  </licenses>
  <scm>
    <connection>scm:git:git://github.com/melahn/helm-chartmap.git</connection>
    <developerConnection>scm:git:ssh://github.com:melahn/helm-chartmap.git</developerConnection>
    <url>https://github.com/melahn/helm-chartmap/tree/master</url>
  </scm>
  <build>
    <resources>
      <resource>
        <filtering>true</filtering>
        <directory>src/main/resources/resources-filtered</directory>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.8</version>
        <executions>
          <execution>
            <id>default-prepare-agent</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
          <execution>
            <id>default-report</id>
            <goals>
              <goal>report</goal>
            </goals>
          </execution>
          <execution>
            <id>default-check</id>
            <goals>
              <goal>check</goal>
            </goals>
            <configuration>
              <rules>
                <rule>
                  <element>BUNDLE</element>
                  <limits>
                    <limit>
                      <counter>COMPLEXITY</counter>
                      <value>COVEREDRATIO</value>
                      <minimum>1.00</minimum>
                    </limit>
                  </limits>
                </rule>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.10.1</version>
        <configuration>
          <source>8</source>
          <release>8</release>
          <showDeprecation>true</showDeprecation>
          <showWarnings>true</showWarnings>
          <optimize>true</optimize>
          <compilerArgument>-Xlint:unchecked</compilerArgument>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>3.1.0</version>
        <executions>
          <execution>
            <id>no-duplicate-declared-dependencies</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <banDuplicatePomDependencyVersions />
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>3.0.0-M7</version>
      </plugin>
      <plugin>
        <artifactId>maven-gpg-plugin</artifactId>
        <version>3.0.1</version>
        <executions>
          <execution>
            <id>sign-artifacts</id>
            <phase>verify</phase>
            <goals>
              <goal>sign</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-help-plugin</artifactId>
        <version>3.2.0</version>
        <executions>
          <execution>
            <id>show-profiles</id>
            <phase>verify</phase>
            <goals>
              <goal>active-profiles</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.2.2</version>
        <configuration>
          <forceCreation>true</forceCreation>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.4.0</version>
        <executions>
          <execution>
            <id>attach-javadocs</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <source>8</source>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.3.0</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <filters>
                <filter>
                  <artifact>*:*</artifact>
                  <excludes>
                    <exclude>module-info.class</exclude>
                    <exclude>META-INF/*.SF</exclude>
                    <exclude>META-INF/*.DSA</exclude>
                    <exclude>META-INF/*.RSA</exclude>
                  </excludes>
                </filter>
                <filter>
                  <artifact>com.melahn:archive-extract</artifact>
                  <excludes>
                    <exclude>log4j2.xml</exclude>
                    <exclude>Log4j-charsets.properties</exclude>
                    <exclude>Log4j-config.xsd</exclude>
                    <exclude>Log4j-events.dtd</exclude>
                    <exclude>Log4j-events.xsd</exclude>
                    <exclude>Log4j-levels.xsd</exclude>
                    <exclude>Log4j-events.dtd</exclude>
                    <exclude>org/apache/logging/log4j/**</exclude>
                    <exclude>org/apache/commons/compress/**</exclude>
                    <exclude>META-INF/versions/9/**</exclude>
                    <exclude>META-INF/maven/org.apache.commons/commons-compress/pom.properties</exclude>
                    <exclude>META-INF/maven/org.apache.commons/commons-compress/pom.xml</exclude>
                    <exclude>META-INF/maven/org.apache.logging.log4j/pom.properties</exclude>
                    <exclude>META-INF/maven/org.apache.logging.log4j/pom.xml</exclude>
                    <exclude>META-INF/maven/org.apache.logging.log4j/pom.properties</exclude>
                    <exclude>META-INF/maven/org.apache.logging.log4j/pom.xml</exclude>
                    <exclude>META-INF/maven/org.apache.logging.log4j/log4j-api/pom.properties</exclude>
                    <exclude>META-INF/maven/org.apache.logging.log4j/log4j-api/pom.xml</exclude>
                    <exclude>META-INF/maven/org.apache.logging.log4j/log4j-core/pom.properties</exclude>
                    <exclude>META-INF/maven/org.apache.logging.log4j/log4j-core/pom.xml</exclude>
                    <exclude>META-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat</exclude>
                  </excludes>
                </filter>
                <filter>
                  <artifact>com.fasterxml.jackson.core:*</artifact>
                  <excludes>
                    <exclude>META-INF/versions/9/module-info.class</exclude>
                  </excludes>
                </filter>
                <filter>
                  <artifact>com.fasterxml.jackson.dataformat:*</artifact>
                  <excludes>
                    <exclude>META-INF/versions/9/module-info.class</exclude>
                  </excludes>
                </filter>
                <filter>
                  <artifact>com.melahn:helm-chartmap</artifact>
                  <excludes>
                    <exclude>**/resources.properties</exclude>
                  </excludes>
                </filter>
                <filter>
                  <artifact>commons-logging:commons-logging</artifact>
                  <includes>
                    <include>**</include>
                  </includes>
                </filter>
                <filter>
                  <artifact>org.apache.logging.log4j:log4j-core</artifact>
                  <excludes>
                    <exclude>META-INF/MANIFEST.MF</exclude>
                  </excludes>
                  <includes>
                    <include>**</include>
                  </includes>
                </filter>
                <filter>
                  <artifact>org.apache.*:*</artifact>
                  <excludes>
                    <exclude>META-INF/MANIFEST.MF</exclude>
                  </excludes>
                </filter>
                <filter>
                  <artifact>com.melahn:archive-extract:*:*</artifact>
                  <excludes>
                    <exclude>META-INF/MANIFEST.MF</exclude>
                  </excludes>
                </filter>
                <filter>
                  <artifact>commons-cli:*:*:*</artifact>
                  <excludes>
                    <exclude>META-INF/MANIFEST.MF</exclude>
                  </excludes>
                </filter>
                <filter>
                  <artifact>commons-codec:*:*:*</artifact>
                  <excludes>
                    <exclude>META-INF/MANIFEST.MF</exclude>
                  </excludes>
                </filter>
                <filter>
                  <artifact>commons-logging:*:*:*</artifact>
                  <excludes>
                    <exclude>META-INF/MANIFEST.MF</exclude>
                  </excludes>
                </filter>
                <filter>
                  <artifact>com.fasterxml.jackson.core:*:*:*</artifact>
                  <excludes>
                    <exclude>META-INF/MANIFEST.MF</exclude>
                  </excludes>
                </filter>
                <filter>
                  <artifact>com.fasterxml.jackson.dataformat:*:*:*</artifact>
                  <excludes>
                    <exclude>META-INF/MANIFEST.MF</exclude>
                  </excludes>
                </filter>
                <filter>
                  <artifact>net.sourceforge.plantuml:*:*:*</artifact>
                  <excludes>
                    <exclude>META-INF/MANIFEST.MF</exclude>
                  </excludes>
                </filter>
                <filter>
                  <artifact>org.json:*:*:*</artifact>
                  <excludes>
                    <exclude>META-INF/MANIFEST.MF</exclude>
                  </excludes>
                </filter>
                <filter>
                  <artifact>org.yaml:*:*:*</artifact>
                  <excludes>
                    <exclude>META-INF/MANIFEST.MF</exclude>
                  </excludes>
                </filter>
              </filters>
              <transformers>
                <transformer>
                  <manifestEntries>
                    <Main-Class>com.melahn.util.helm.ChartMap</Main-Class>
                    <Multi-Release>true</Multi-Release>
                    <Build-Timestamp>${maven.build.timestamp}</Build-Timestamp>
                    <Builder-Id>${builder.id}</Builder-Id>
                    <url>${project.url}</url>
                  </manifestEntries>
                </transformer>
                <transformer />
                <transformer>
                  <addHeader>false</addHeader>
                </transformer>
                <transformer>
                  <resource>META-INF/DEPENDENCIES</resource>
                </transformer>
                <transformer />
              </transformers>
            </configuration>
          </execution>
        </executions>
        <configuration>
          <minimizeJar>true</minimizeJar>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-source-plugin</artifactId>
        <version>3.2.1</version>
        <executions>
          <execution>
            <id>attach-sources</id>
            <goals>
              <goal>jar-no-fork</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>3.0.0-M7</version>
        <executions>
          <execution>
            <id>unit-tests</id>
            <phase>test</phase>
            <goals>
              <goal>test</goal>
            </goals>
            <configuration>
              <skip>false</skip>
              <includes>
                <include>**/*Test.java</include>
              </includes>
              <excludes>
                <exclude>**/*IntegrationTest.java</exclude>
              </excludes>
            </configuration>
          </execution>
          <execution>
            <id>integration-tests</id>
            <phase>integration-test</phase>
            <goals>
              <goal>test</goal>
            </goals>
            <configuration>
              <skip>false</skip>
              <includes>
                <include>**/*IntegrationTest.java</include>
              </includes>
            </configuration>
          </execution>
        </executions>
        <configuration>
          <skip>true</skip>
          <trimStackTrace>false</trimStackTrace>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>local-java9+</id>
      <properties>
        <maven.compiler.release>8</maven.compiler.release>
        <builder.id>${user.name}</builder.id>
      </properties>
    </profile>
    <profile>
      <id>local-java8</id>
      <properties>
        <maven.compiler.target>8</maven.compiler.target>
        <builder.id>${user.name}</builder.id>
        <maven.compiler.source>8</maven.compiler.source>
      </properties>
    </profile>
    <profile>
      <id>github</id>
      <distributionManagement>
        <repository>
          <id>github</id>
          <name>GitHub melahn Apache Maven Packages</name>
          <url>https://maven.pkg.github.com/melahn/helm-chartmap</url>
        </repository>
      </distributionManagement>
      <properties>
        <maven.compiler.release>8</maven.compiler.release>
        <builder.id>${env.GITHUB_ACTOR}</builder.id>
      </properties>
    </profile>
    <profile>
      <id>ossrh</id>
      <distributionManagement>
        <repository>
          <id>ossrh</id>
          <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
      </distributionManagement>
      <properties>
        <maven.compiler.release>8</maven.compiler.release>
        <builder.id>${env.GITHUB_ACTOR}</builder.id>
      </properties>
    </profile>
  </profiles>
  <dependencies>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter</artifactId>
      <version>5.9.0-M1</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>junit-jupiter-api</artifactId>
          <groupId>org.junit.jupiter</groupId>
        </exclusion>
        <exclusion>
          <artifactId>junit-jupiter-params</artifactId>
          <groupId>org.junit.jupiter</groupId>
        </exclusion>
        <exclusion>
          <artifactId>junit-jupiter-engine</artifactId>
          <groupId>org.junit.jupiter</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-inline</artifactId>
      <version>4.6.1</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>mockito-core</artifactId>
          <groupId>org.mockito</groupId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.8</version>
        <reportSets>
          <reportSet>
            <reports>
              <report>report</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>
  <distributionManagement>
    <repository>
      <id>ossrh</id>
      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
    </repository>
    <snapshotRepository>
      <id>ossrh</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </snapshotRepository>
  </distributionManagement>
  <properties>
    <sonar.projectKey>helm-chartmap</sonar.projectKey>
    <sonar.host.url>https://sonarcloud.io</sonar.host.url>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <sonar.organization>melahn</sonar.organization>
  </properties>
</project>
