<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements.  See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership.  The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License.  You may obtain a copy of the License at
  ~
  ~     http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied.  See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->
<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.apache.maven</groupId>
    <artifactId>maven-parent</artifactId>
    <version>40</version>
    <relativePath />
  </parent>

  <groupId>org.apache.maven.plugin-tools</groupId>
  <artifactId>maven-plugin-tools</artifactId>
  <version>3.10.2</version>
  <packaging>pom</packaging>

  <name>Maven Plugin Tools</name>
  <description>The Maven Plugin Tools contains the necessary tools to produce Maven Plugins in scripting languages
    and to generate content such as descriptor, help, and documentation.</description>
  <url>https://maven.apache.org/plugin-tools</url>
  <inceptionYear>2004</inceptionYear>

  <contributors>
    <contributor>
      <name>Muminur Choudhury</name>
    </contributor>
    <contributor>
      <name>Tinguaro Barreno</name>
    </contributor>
    <contributor>
      <name>James Phillpotts</name>
    </contributor>
    <contributor>
      <name>Slawomir Jaranowski</name>
    </contributor>
    <contributor>
      <name>Mikolaj Izdebski</name>
    </contributor>
  </contributors>

  <modules>
    <module>maven-plugin-tools-generators</module>
    <module>maven-plugin-tools-api</module>
    <module>maven-plugin-tools-java</module>
    <module>maven-plugin-tools-annotations</module>
    <module>maven-plugin-annotations</module>
    <module>maven-script</module>
    <!-- keep at end since ITs require every extractors -->
    <module>maven-plugin-plugin</module>
    <module>maven-plugin-report-plugin</module>
  </modules>

  <scm>
    <connection>scm:git:https://gitbox.apache.org/repos/asf/maven-plugin-tools.git</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/maven-plugin-tools.git</developerConnection>
    <tag>maven-plugin-tools-3.10.2</tag>
    <url>https://github.com/apache/maven-plugin-tools/tree/${project.scm.tag}</url>
  </scm>
  <issueManagement>
    <system>jira</system>
    <url>https://issues.apache.org/jira/browse/MPLUGIN</url>
  </issueManagement>
  <ciManagement>
    <system>Jenkins</system>
    <url>https://ci-maven.apache.org/job/Maven/job/maven-box/job/maven-plugin-tools/</url>
  </ciManagement>
  <distributionManagement>
    <site>
      <id>apache.website</id>
      <url>scm:svn:https://svn.apache.org/repos/asf/maven/website/components/${maven.site.path}</url>
    </site>
  </distributionManagement>

  <properties>
    <javaVersion>8</javaVersion>
    <pluginTestingHarnessVersion>3.3.0</pluginTestingHarnessVersion>
    <maven4Version>4.0.0-alpha-4</maven4Version>
    <mavenVersion>3.2.5</mavenVersion>
    <slf4jVersion>1.7.36</slf4jVersion>
    <antVersion>1.10.14</antVersion>
    <maven.site.path>plugin-tools-archives/plugin-tools-LATEST</maven.site.path>
    <!-- whenever the ASM version is updated also the
    maven-plugin-tools-annotations/src/main/java/o/a/m/tools/plugins/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor#CLASS_VERSION_TO_JAVA_STRING
    needs to be updated as well -->
    <asmVersion>9.6</asmVersion>
    <plexusUtilsVersion>4.0.0</plexusUtilsVersion>
    <plexusXmlVersion>3.0.0</plexusXmlVersion>
    <reportingApiVersion>3.1.1</reportingApiVersion>
    <reportingImplVersion>3.2.0</reportingImplVersion>
    <compilerPluginVersion>3.11.0</compilerPluginVersion>
    <javadocPluginVersion>3.5.0</javadocPluginVersion>
    <project.build.outputTimestamp>2023-11-02T22:37:55Z</project.build.outputTimestamp>
  </properties>

  <dependencyManagement>
    <dependencies>
      <!-- maven -->
      <dependency>
        <groupId>org.apache.maven.plugin-tools</groupId>
        <artifactId>maven-plugin-tools-api</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.plugin-tools</groupId>
        <artifactId>maven-plugin-tools-generators</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.plugin-tools</groupId>
        <artifactId>maven-plugin-tools-model</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.plugin-tools</groupId>
        <artifactId>maven-plugin-tools-java</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.plugin-tools</groupId>
        <artifactId>maven-plugin-tools-annotations</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.plugin-tools</groupId>
        <artifactId>maven-plugin-annotations</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.plugin-tools</groupId>
        <artifactId>maven-plugin-tools-ant</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.plugin-tools</groupId>
        <artifactId>maven-plugin-tools-beanshell</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-plugin-plugin</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-model</artifactId>
        <version>${mavenVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-plugin-api</artifactId>
        <version>${mavenVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-core</artifactId>
        <version>${mavenVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-artifact</artifactId>
        <version>${mavenVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-settings</artifactId>
        <version>${mavenVersion}</version>
      </dependency>
      <!-- shared -->
      <dependency>
        <groupId>org.apache.maven.reporting</groupId>
        <artifactId>maven-reporting-api</artifactId>
        <version>${reportingApiVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.reporting</groupId>
        <artifactId>maven-reporting-impl</artifactId>
        <version>${reportingImplVersion}</version>
        <exclusions>
          <exclusion>
            <groupId>org.codehaus.plexus</groupId>
            <artifactId>plexus-container-default</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4jVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>${slf4jVersion}</version>
      </dependency>
      <!-- plexus -->
      <dependency>
        <groupId>org.codehaus.plexus</groupId>
        <artifactId>plexus-utils</artifactId>
        <version>${plexusUtilsVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.plexus</groupId>
        <artifactId>plexus-xml</artifactId>
        <version>${plexusXmlVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.plexus</groupId>
        <artifactId>plexus-archiver</artifactId>
        <version>4.8.0</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.plexus</groupId>
        <artifactId>plexus-velocity</artifactId>
        <version>1.2</version>
        <exclusions>
          <exclusion>
            <groupId>org.codehaus.plexus</groupId>
            <artifactId>plexus-container-default</artifactId>
          </exclusion>
          <exclusion>
            <groupId>velocity</groupId>
            <artifactId>velocity</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <!-- other -->
      <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity</artifactId>
        <version>1.7</version>
      </dependency>

      <dependency>
        <groupId>com.thoughtworks.qdox</groupId>
        <artifactId>qdox</artifactId>
        <version>2.0.3</version>
      </dependency>
      <!-- for XHTML to plain text and HTML to XHTML conversion -->
      <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.16.2</version>
      </dependency>
      <dependency>
        <groupId>org.ow2.asm</groupId>
        <artifactId>asm</artifactId>
        <version>${asmVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.ow2.asm</groupId>
        <artifactId>asm-commons</artifactId>
        <version>${asmVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.ow2.asm</groupId>
        <artifactId>asm-util</artifactId>
        <version>${asmVersion}</version>
      </dependency>
      <!-- testing -->
      <dependency>
        <groupId>org.apache.maven.plugin-testing</groupId>
        <artifactId>maven-plugin-testing-harness</artifactId>
        <version>${pluginTestingHarnessVersion}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-core</artifactId>
        <version>3.24.2</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest</artifactId>
        <version>2.2</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>3.12.4</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.junit</groupId>
        <artifactId>junit-bom</artifactId>
        <version>5.10.0</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.codehaus.plexus</groupId>
        <artifactId>plexus-testing</artifactId>
        <version>1.2.0</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <configuration>
            <sourceFileExcludes>
              <exclude>HelpMojo.*</exclude>
            </sourceFileExcludes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <configuration>
            <tagBase>https://svn.apache.org/repos/asf/maven/plugin-tools/tags</tagBase>
            <autoVersionSubmodules>true</autoVersionSubmodules>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <configuration>
            <excludes combine.children="append">
              <exclude>src/site/resources/images/plugin-descriptors.svg</exclude>
              <!-- Jenkins job with local Maven repository -->
              <exclude>src/site/xdoc/plugin-descriptors.mmd</exclude>
              <!-- Hudson Maven3 integration log -->
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${surefire.version}</version>
          <configuration>
            <trimStackTrace>false</trimStackTrace>
          </configuration>
        </plugin>
        <plugin>
          <groupId>com.diffplug.spotless</groupId>
          <artifactId>spotless-maven-plugin</artifactId>
          <configuration>
            <java>
              <includes>
                <include>src/**/*.java</include>
              </includes>
              <excludes>
                <exclude>**/it/source-encoding/</exclude>
              </excludes>
            </java>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <profiles>
    <profile>
      <id>reporting</id>
      <reporting>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <configuration>
              <linksource>true</linksource>
              <groups>
                <group>
                  <title>Plugin Tools' Maven Plugin Plugin</title>
                  <packages>org.apache.maven.plugin.plugin*</packages>
                </group>
                <group>
                  <title>Plugin Tools Extractor API</title>
                  <packages>org.apache.maven.tools.plugin:org.apache.maven.tools.plugin.extractor:org.apache.maven.tools.plugin.scanner:org.apache.maven.tools.plugin.util</packages>
                </group>
                <group>
                  <title>Plugin Tools Generators</title>
                  <packages>org.apache.maven.tools.plugin.generator</packages>
                </group>
                <group>
                  <title>Java Annotations Support: Annotations + Extractor</title>
                  <packages>org.apache.maven.plugins.annotations:org.apache.maven.tools.plugin.extractor.annotations*</packages>
                </group>
                <group>
                  <title>Javadoc Support: Javadoc Tags Extractor + Taglets</title>
                  <packages>org.apache.maven.tools.plugin.extractor.javadoc:org.apache.maven.tools.plugin.javadoc</packages>
                </group>
                <group>
                  <title>Beanshell Support: Extractor + Runtime</title>
                  <packages>org.apache.maven.tools.plugin.extractor.beanshell:org.apache.maven.script.beanshell</packages>
                </group>
                <group>
                  <title>Apache Ant Support : Metadata + Extractor + Runtime</title>
                  <packages>org.apache.maven.tools.plugin.extractor.ant:org.apache.maven.script.ant:org.apache.maven.tools.plugin.extractor.model*</packages>
                </group>
              </groups>
            </configuration>
            <reportSets>
              <reportSet>
                <id>aggregate</id>
                <reports>
                  <report>aggregate</report>
                </reports>
                <inherited>false</inherited>
              </reportSet>
            </reportSets>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jxr-plugin</artifactId>
            <reportSets>
              <reportSet>
                <id>aggregate</id>
                <reports>
                  <report>aggregate</report>
                </reports>
                <inherited>false</inherited>
              </reportSet>
            </reportSets>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <reportSets>
              <reportSet>
                <id>aggregate</id>
                <reports>
                  <report>checkstyle-aggregate</report>
                </reports>
                <inherited>false</inherited>
              </reportSet>
            </reportSets>
          </plugin>
        </plugins>
      </reporting>
    </profile>
  </profiles>
</project>
