<?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>org.jenkins-ci</groupId>
  <artifactId>jenkins</artifactId>
  <version>1.76</version>
  <packaging>pom</packaging>

  <name>Jenkins Parent POM</name>
  <description>Standard Parent POM for non-plugin Jenkins components: core, libraries, etc.</description>
  <url>https://github.com/jenkinsci/pom</url>
  <inceptionYear>2004</inceptionYear>

  <mailingLists>
    <mailingList>
      <name>Jenkins advisories list</name>
      <subscribe>jenkinsci-advisories+subscribe@googlegroups.com</subscribe>
      <unsubscribe>jenkinsci-advisories+unsubscribe@googlegroups.com</unsubscribe>
    </mailingList>
    <mailingList>
      <name>Jenkins developer discussion list</name>
      <subscribe>jenkinsci-dev+subscribe@googlegroups.com</subscribe>
      <unsubscribe>jenkinsci-dev+unsubscribe@googlegroups.com</unsubscribe>
      <post>jenkinsci-dev@googlegroups.com</post>
      <archive>http://jenkins.361315.n4.nabble.com/Jenkins-dev-f387835.html</archive>
      <otherArchives>
        <otherArchive>http://hudson.361315.n4.nabble.com/Hudson-dev-f387835.html</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Jenkins issues list</name>
      <subscribe>jenkinsci-issues+subscribe@googlegroups.com</subscribe>
      <unsubscribe>jenkinsci-issues+unsubscribe@googlegroups.com</unsubscribe>
    </mailingList>
    <mailingList>
      <name>Jenkins user discussion list</name>
      <subscribe>jenkinsci-users+subscribe@googlegroups.com</subscribe>
      <unsubscribe>jenkinsci-users+unsubscribe@googlegroups.com</unsubscribe>
      <post>jenkinsci-users@googlegroups.com</post>
      <archive>http://jenkins.361315.n4.nabble.com/Jenkins-users-f361316.html</archive>
      <otherArchives>
        <otherArchive>http://hudson.361315.n4.nabble.com/Hudson-users-f361316.html</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Jenkins Japanese user discussion list</name>
      <subscribe>jenkinsci-ja+subscribe@googlegroups.com</subscribe>
      <unsubscribe>jenkinsci-ja+unsubscribe@googlegroups.com</unsubscribe>
      <post>jenkinsci-ja@googlegroups.com</post>
      <archive>http://jenkinsci.361315.n4.nabble.com/Jenkins-ja-f361157.html</archive>
    </mailingList>
  </mailingLists>

  <scm>
    <connection>scm:git:https://github.com/jenkinsci/pom.git</connection>
    <developerConnection>scm:git:git@github.com:jenkinsci/pom.git</developerConnection>
    <tag>jenkins-1.76</tag>
    <url>https://github.com/jenkinsci/pom</url>
  </scm>

  <issueManagement>
    <system>JIRA</system>
    <url>http://issues.jenkins-ci.org</url>
  </issueManagement>

  <ciManagement>
    <system>Jenkins</system>
    <url>https://ci.jenkins.io</url>
  </ciManagement>

  <distributionManagement>
    <repository>
      <uniqueVersion>false</uniqueVersion>
      <id>maven.jenkins-ci.org</id>
      <url>https://repo.jenkins-ci.org/releases/</url>
    </repository>
    <snapshotRepository>
      <id>maven.jenkins-ci.org</id>
      <url>https://repo.jenkins-ci.org/snapshots/</url>
    </snapshotRepository>
  </distributionManagement>

  <properties>
    <!-- By default only check remote repositories once per week -->
    <maven.repository.update.freqency>interval:10080</maven.repository.update.freqency>

    <!-- Generate metadata for reflection on method parameters -->
    <maven.compiler.parameters>true</maven.compiler.parameters>

    <spotbugs-maven-plugin.version>4.7.0.0</spotbugs-maven-plugin.version>
    <spotbugs-annotations.version>4.7.0</spotbugs-annotations.version>
    <!-- Whether the build should fail if SpotBugs finds any error. -->
    <!-- It is strongly encouraged to leave it as true. Use false with care only in transient situations. -->
    <spotbugs.failOnError>true</spotbugs.failOnError>
    <!-- Defines a SpotBugs threshold. Use "Low" to discover low-priority bugs.
         Hint: SpotBugs considers some real NPE risks in Jenkins as low-priority issues, it is recommended to enable it in plugins.
      -->
    <spotbugs.threshold>Medium</spotbugs.threshold>
    <!-- Defines a SpotBugs effort. Use "Max" to maximize the scan depth -->
    <spotbugs.effort>default</spotbugs.effort>
    <!-- Defines an optional SpotBugs excludes file.
         Generally it is recommended to use @SuppressFBWarnings annotation unless you want to ignore an entire class of issues -->
    <spotbugs.excludeFilterFile />

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

    <incrementals.url>https://repo.jenkins-ci.org/incrementals/</incrementals.url>
    <scmTag>HEAD</scmTag>

    <!-- Define all plugin versions as properties so individual hierarchies can easily override -->
    <animal-sniffer-plugin.version>1.21</animal-sniffer-plugin.version>
    <apt-maven-plugin.version>1.0-alpha-5</apt-maven-plugin.version>
    <axistools-maven-plugin.version>1.4</axistools-maven-plugin.version>
    <buildnumber-maven-plugin.version>3.0.0</buildnumber-maven-plugin.version>
    <build-helper-maven-plugin.version>3.3.0</build-helper-maven-plugin.version>
    <cargo-maven2-plugin.version>1.8.5</cargo-maven2-plugin.version>
    <cobertura-maven-plugin.version>2.7</cobertura-maven-plugin.version>
    <exec-maven-plugin.version>3.0.0</exec-maven-plugin.version>
    <gmaven-plugin.version>1.5-jenkins-3</gmaven-plugin.version>
    <gwt-maven-plugin.version>2.9.0</gwt-maven-plugin.version>
    <hpi-plugin.version>3.27</hpi-plugin.version>
    <javancss-maven-plugin.version>2.1</javancss-maven-plugin.version>
    <jdepend-maven-plugin.version>2.0</jdepend-maven-plugin.version>
    <kohsuke-gmaven-plugin.version>1.0-rc-5-patch-2</kohsuke-gmaven-plugin.version>
    <lifecycle-mapping.version>1.0.0</lifecycle-mapping.version>
    <maven-antrun-extended-plugin.version>1.43</maven-antrun-extended-plugin.version>
    <maven-antrun-plugin.version>1.3</maven-antrun-plugin.version>
    <maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version>
    <maven-changelog-plugin.version>2.3</maven-changelog-plugin.version>
    <maven-checkstyle-plugin.version>3.1.2</maven-checkstyle-plugin.version>
    <maven-clean-plugin.version>3.2.0</maven-clean-plugin.version>
    <maven-compiler-plugin.version>3.10.1</maven-compiler-plugin.version>
    <maven-dependency-plugin.version>3.3.0</maven-dependency-plugin.version>
    <maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version>
    <maven-doap-plugin.version>1.2</maven-doap-plugin.version>
    <maven-eclipse-plugin.version>2.10</maven-eclipse-plugin.version>
    <maven-enforcer-plugin.version>3.0.0</maven-enforcer-plugin.version>
    <maven-gpg-plugin.version>3.0.1</maven-gpg-plugin.version>
    <maven-help-plugin.version>3.2.0</maven-help-plugin.version>
    <maven-install-plugin.version>3.0.0-M1</maven-install-plugin.version>
    <maven-javadoc-plugin.version>3.4.0</maven-javadoc-plugin.version>
    <maven-jar-plugin.version>3.2.2</maven-jar-plugin.version>
    <maven-jetty-plugin.version>6.1.26</maven-jetty-plugin.version>
    <maven-jxr-plugin.version>3.2.0</maven-jxr-plugin.version>
    <localizer-maven-plugin.version>1.31</localizer-maven-plugin.version>
    <maven-pmd-plugin.version>3.17.0</maven-pmd-plugin.version>
    <maven-project-info-reports-plugin.version>3.3.0</maven-project-info-reports-plugin.version>
    <maven-reactor-plugin.version>1.1</maven-reactor-plugin.version>
    <maven-release-plugin.version>2.5.3</maven-release-plugin.version>
    <maven-remote-resources-plugin.version>1.7.0</maven-remote-resources-plugin.version>
    <maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>
    <maven-site-plugin.version>3.12.0</maven-site-plugin.version>
    <maven-sorcerer-plugin.version>0.8</maven-sorcerer-plugin.version>
    <maven-source-plugin.version>3.2.1</maven-source-plugin.version>
    <maven-stapler-plugin.version>1.17</maven-stapler-plugin.version>
    <maven-surefire-plugin.version>3.0.0-M7</maven-surefire-plugin.version>
    <maven-surefire-report-plugin.version>3.0.0-M7</maven-surefire-report-plugin.version>
    <maven-war-plugin.version>3.3.2</maven-war-plugin.version>
    <openjpa-maven-plugin.version>1.2</openjpa-maven-plugin.version>
    <taglist-maven-plugin.version>3.0.0</taglist-maven-plugin.version>
    <versions-maven-plugin.version>2.11.0</versions-maven-plugin.version>
    <xml-maven-plugin.version>1.0.2</xml-maven-plugin.version>
    <maven-license-plugin.version>1.10</maven-license-plugin.version>
    <incrementals-plugin.version>1.3</incrementals-plugin.version>
    <incrementals-enforce-minimum.version>1.0-beta-4</incrementals-enforce-minimum.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.github.spotbugs</groupId>
        <artifactId>spotbugs-annotations</artifactId>
        <version>${spotbugs-annotations.version}</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>animal-sniffer-annotations</artifactId>
        <version>${animal-sniffer-plugin.version}</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.mojo.signature</groupId>
        <artifactId>java15</artifactId>
        <version>1.0</version>
        <type>signature</type>
      </dependency>
      <dependency>
        <groupId>org.codehaus.mojo.signature</groupId>
        <artifactId>java16</artifactId>
        <version>1.1</version>
        <type>signature</type>
      </dependency>
      <dependency>
        <groupId>org.codehaus.mojo.signature</groupId>
        <artifactId>java17</artifactId>
        <version>1.0</version>
        <type>signature</type>
      </dependency>
      <dependency>
        <groupId>org.codehaus.mojo.signature</groupId>
        <artifactId>java18</artifactId>
        <version>1.0</version>
        <type>signature</type>
      </dependency>
      <dependency>
        <groupId>org.jenkins-ci</groupId>
        <artifactId>test-annotations</artifactId>
        <version>1.4</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <repositories>
    <repository>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>repo.jenkins-ci.org</id>
      <url>https://repo.jenkins-ci.org/public/</url>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>repo.jenkins-ci.org</id>
      <url>https://repo.jenkins-ci.org/public/</url>
    </pluginRepository>
  </pluginRepositories>

  <build>
    <defaultGoal>install</defaultGoal>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${maven-assembly-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-changelog-plugin</artifactId>
          <version>${maven-changelog-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${maven-checkstyle-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>${maven-clean-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${maven-compiler-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>${maven-dependency-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>${maven-deploy-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-doap-plugin</artifactId>
          <version>${maven-doap-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-eclipse-plugin</artifactId>
          <version>${maven-eclipse-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>${maven-enforcer-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>${maven-gpg-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-help-plugin</artifactId>
          <version>${maven-help-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>${maven-install-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${maven-jar-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${maven-javadoc-plugin.version}</version>
          <configuration>
            <source>8</source>
            <locale>en_US</locale>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-jxr-plugin</artifactId>
          <version>${maven-jxr-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>${maven-pmd-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>${maven-project-info-reports-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-reactor-plugin</artifactId>
          <version>${maven-reactor-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-release-plugin</artifactId>
          <version>${maven-release-plugin.version}</version>
          <configuration>
            <releaseProfiles>!consume-incrementals</releaseProfiles>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-remote-resources-plugin</artifactId>
          <version>${maven-remote-resources-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>${maven-resources-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>${maven-site-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-source-plugin</artifactId>
          <version>${maven-source-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${maven-surefire-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-report-plugin</artifactId>
          <version>${maven-surefire-report-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>${maven-war-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.gmaven</groupId>
          <artifactId>gmaven-plugin</artifactId>
          <version>${gmaven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>apt-maven-plugin</artifactId>
          <version>${apt-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>axistools-maven-plugin</artifactId>
          <version>${axistools-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>buildnumber-maven-plugin</artifactId>
          <version>${buildnumber-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>${build-helper-maven-plugin.version}</version>
          <executions>
            <execution>
              <id>add-source</id>
              <goals>
                <goal>add-source</goal>
              </goals>
              <phase>generate-sources</phase>
              <configuration>
                <sources>
                  <source>${project.build.directory}/generated-sources/localizer</source>
                </sources>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.codehaus.cargo</groupId>
          <artifactId>cargo-maven2-plugin</artifactId>
          <version>${cargo-maven2-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>cobertura-maven-plugin</artifactId>
          <version>${cobertura-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>${exec-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>com.github.spotbugs</groupId>
          <artifactId>spotbugs-maven-plugin</artifactId>
          <version>${spotbugs-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>gwt-maven-plugin</artifactId>
          <version>${gwt-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>javancss-maven-plugin</artifactId>
          <version>${javancss-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>jdepend-maven-plugin</artifactId>
          <version>${jdepend-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>openjpa-maven-plugin</artifactId>
          <version>${openjpa-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>taglist-maven-plugin</artifactId>
          <version>${taglist-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>versions-maven-plugin</artifactId>
          <version>${versions-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>xml-maven-plugin</artifactId>
          <version>${xml-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.kohsuke.gmaven</groupId>
          <artifactId>gmaven-plugin</artifactId>
          <version>${kohsuke-gmaven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.kohsuke.stapler</groupId>
          <artifactId>maven-stapler-plugin</artifactId>
          <version>${maven-stapler-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.jenkins-ci.tools</groupId>
          <artifactId>maven-hpi-plugin</artifactId>
          <version>${hpi-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.jvnet.localizer</groupId>
          <artifactId>localizer-maven-plugin</artifactId>
          <version>${localizer-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.jvnet.maven-antrun-extended-plugin</groupId>
          <artifactId>maven-antrun-extended-plugin</artifactId>
          <version>${maven-antrun-extended-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.jvnet.sorcerer</groupId>
          <artifactId>maven-sorcerer-plugin</artifactId>
          <version>${maven-sorcerer-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>${lifecycle-mapping.version}</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <versionRange>${maven-enforcer-plugin.version}</versionRange>
                    <goals>
                      <goal>display-info</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <execute />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <versionRange>${maven-enforcer-plugin.version}</versionRange>
                    <goals>
                      <goal>enforce</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-remote-resources-plugin</artifactId>
                    <versionRange>${maven-remote-resources-plugin.version}</versionRange>
                    <goals>
                      <goal>process</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <versionRange>${maven-war-plugin.version}</versionRange>
                    <goals>
                      <goal>exploded</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <versionRange>${build-helper-maven-plugin.version}</versionRange>
                    <goals>
                      <goal>regex-property</goal>
                      <goal>timestamp-property</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <execute />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>com.infradna.tool</groupId>
                    <artifactId>bridge-method-injector</artifactId>
                    <versionRange>[1.4,)</versionRange>
                    <goals>
                      <goal>process</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <execute />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <versionRange>[2.3,)</versionRange>
                    <goals>
                      <goal>copy</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.kohsuke</groupId>
                    <artifactId>access-modifier-checker</artifactId>
                    <versionRange>[1.0,)</versionRange>
                    <goals>
                      <goal>enforce</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.codehaus.gmaven</groupId>
                    <artifactId>gmaven-plugin</artifactId>
                    <versionRange>[1.3,)</versionRange>
                    <goals>
                      <goal>compile</goal>
                      <goal>testCompile</goal>
                      <goal>generateStubs</goal>
                      <goal>generateTestStubs</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.jvnet.hudson.tools</groupId>
                    <artifactId>maven-encoding-plugin</artifactId>
                    <versionRange>[1.1,)</versionRange>
                    <goals>
                      <goal>check-encoding</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>antlr-maven-plugin</artifactId>
                    <versionRange>[2.1,)</versionRange>
                    <goals>
                      <goal>generate</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <execute />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.jvnet.localizer</groupId>
                    <artifactId>localizer-maven-plugin</artifactId>
                    <versionRange>[1.28,)</versionRange>
                    <goals>
                      <goal>generate</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <execute />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.jenkins-ci.tools</groupId>
                    <artifactId>maven-hpi-plugin</artifactId>
                    <versionRange>[1.74,)</versionRange>
                    <goals>
                      <goal>generate-taglib-interface</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <execute />
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.mortbay.jetty</groupId>
          <artifactId>maven-jetty-plugin</artifactId>
          <version>${maven-jetty-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>com.cloudbees</groupId>
          <artifactId>maven-license-plugin</artifactId>
          <version>${maven-license-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>io.jenkins.tools.incrementals</groupId>
          <artifactId>incrementals-maven-plugin</artifactId>
          <version>${incrementals-plugin.version}</version>
          <configuration>
            <includes>
              <include>org.jenkins-ci.*</include>
              <include>io.jenkins.*</include>
            </includes>
            <generateBackupPoms>false</generateBackupPoms>
            <updateNonincremental>false</updateNonincremental>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <groupId>com.github.spotbugs</groupId>
        <artifactId>spotbugs-maven-plugin</artifactId>
        <configuration>
          <failOnError>${spotbugs.failOnError}</failOnError>
          <xmlOutput>true</xmlOutput>
          <spotbugsXmlOutput>false</spotbugsXmlOutput>
          <effort>${spotbugs.effort}</effort>
          <threshold>${spotbugs.threshold}</threshold>
          <!-- Empty by default, child POMs are expected to override if needed -->
          <excludeFilterFile>${spotbugs.excludeFilterFile}</excludeFilterFile>
          <plugins>
            <plugin>
              <groupId>com.h3xstream.findsecbugs</groupId>
              <artifactId>findsecbugs-plugin</artifactId>
              <version>1.12.0</version>
            </plugin>
          </plugins>
        </configuration>
        <executions>
          <execution>
            <id>spotbugs</id>
            <goals>
              <goal>check</goal>
            </goals>
            <phase>verify</phase>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-enforcer-plugin</artifactId>
        <dependencies>
          <dependency>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>extra-enforcer-rules</artifactId>
            <version>1.5.1</version>
          </dependency>
        </dependencies>
        <executions>
          <execution>
            <id>display-info</id>
            <goals>
              <goal>display-info</goal>
              <goal>enforce</goal>
            </goals>
            <phase>validate</phase>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <version>[3.8.1,)</version>
                  <message>3.8.1 required to no longer download dependencies via HTTP (use HTTPS instead).</message>
                </requireMavenVersion>
                <!-- TODO failing during incrementals deploy: MENFORCER-281
                <requirePluginVersions>
                  <banSnapshots>false</banSnapshots>
                </requirePluginVersions>
                -->
                <requireJavaVersion>
                  <version>[1.8.0,]</version>
                </requireJavaVersion>
                <bannedDependencies>
                  <excludes>
                    <exclude>javax.servlet:servlet-api</exclude>
                    <!-- CVE-2021-44228 -->
                    <exclude>org.apache.logging.log4j:*:(,2.15.0-rc1]</exclude>
                  </excludes>
                  <includes>
                    <include>javax.servlet:servlet-api:[0]</include>
                  </includes>
                </bannedDependencies>
                <requireUpperBoundDeps>
                  <excludes>
                    <exclude>com.google.code.findbugs:jsr305</exclude>
                    <exclude>javax.servlet:javax.servlet-api</exclude>
                    <exclude>javax.servlet:servlet-api</exclude>
                  </excludes>
                </requireUpperBoundDeps>
                <enforceBytecodeVersion>
                  <maxJdkVersion>1.8</maxJdkVersion>
                  <ignoredScopes>
                    <ignoredScope>test</ignoredScope>
                  </ignoredScopes>
                  <excludes>
                    <!--  findbugs dep managed to provided and optional so is not shipped and missing annotations ok -->
                    <exclude>com.github.spotbugs:spotbugs-annotations</exclude>
                    <exclude>com.google.code.findbugs:annotations</exclude>
                  </excludes>
                  <!-- To add exclusions in a child POM, use:
                  <plugin>
                      <artifactId>maven-enforcer-plugin</artifactId>
                      <executions>
                          <execution>
                              <id>display-info</id>
                              <configuration>
                                  <rules>
                                      <enforceBytecodeVersion>
                                          <excludes combine.children="append">
                                              <exclude>…</exclude>
                                          </excludes>
                                      </enforceBytecodeVersion>
                                  </rules>
                              </configuration>
                          </execution>
                      </executions>
                  </plugin>
                  -->
                </enforceBytecodeVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>animal-sniffer-maven-plugin</artifactId>
        <version>${animal-sniffer-plugin.version}</version>
        <configuration>
          <signature>
            <groupId>org.codehaus.mojo.signature</groupId>
            <artifactId>java18</artifactId>
          </signature>
        </configuration>
        <executions>
          <execution>
            <id>check</id>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-eclipse-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>jdk-8-and-below</id>
      <activation>
        <jdk>(,1.8]</jdk>
      </activation>
      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.testSource>1.8</maven.compiler.testSource>
        <maven.compiler.testTarget>1.8</maven.compiler.testTarget>
      </properties>
    </profile>
    <profile>
      <id>jdk-9-and-above</id>
      <activation>
        <jdk>[9,)</jdk>
      </activation>
      <properties>
        <!-- When compiling with a Java 9+ compiler, we always rely on "release" in favor of "source" and "target", even when compiling to Java 8 bytecode. -->
        <maven.compiler.release>8</maven.compiler.release>
        <maven.compiler.testRelease>8</maven.compiler.testRelease>
        <!-- "release" serves the same purpose as Animal Sniffer. -->
        <animal.sniffer.skip>true</animal.sniffer.skip>
        <!-- Work around openjdk/jdk11u-dev#919. TODO When we upgrade to OpenJDK 11.0.16, this should be deleted. -->
        <maven.compiler.forceJavacCompilerUse>true</maven.compiler.forceJavacCompilerUse>
      </properties>
    </profile>
    <profile>
      <id>always-check-remote-repositories</id>
      <properties>
        <maven.repository.update.freqency>always</maven.repository.update.freqency>
      </properties>
    </profile>
    <profile>
      <!-- see JEP-305 -->
      <id>consume-incrementals</id>
      <repositories>
        <repository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>incrementals</id>
          <url>${incrementals.url}</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>incrementals</id>
          <url>${incrementals.url}</url>
        </pluginRepository>
      </pluginRepositories>
    </profile>
    <profile>
      <id>might-produce-incrementals</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>flatten-maven-plugin</artifactId>
            <version>1.2.7</version>
            <configuration>
              <updatePomFile>true</updatePomFile>
              <outputDirectory>${project.build.directory}</outputDirectory>
              <flattenedPomFilename>${project.artifactId}-${project.version}.pom</flattenedPomFilename>
            </configuration>
            <executions>
              <execution>
                <id>flatten</id>
                <goals>
                  <goal>flatten</goal>
                </goals>
                <phase>process-resources</phase>
                <configuration>
                  <flattenMode>oss</flattenMode>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-enforcer-plugin</artifactId>
            <dependencies>
              <dependency>
                <groupId>io.jenkins.tools.incrementals</groupId>
                <artifactId>incrementals-enforcer-rules</artifactId>
                <version>${incrementals-plugin.version}</version>
              </dependency>
            </dependencies>
            <executions>
              <execution>
                <id>display-info</id>
                <configuration>
                  <rules>
                    <rule implementation="io.jenkins.tools.incrementals.enforcer.RequireExtensionVersion">
                      <version>[${incrementals-enforce-minimum.version},)</version>
                    </rule>
                  </rules>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-release-plugin</artifactId>
            <configuration>
              <completionGoals>incrementals:reincrementalify</completionGoals>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>produce-incrementals</id>
      <activation>
        <property>
          <name>set.changelist</name>
          <value>true</value>
        </property>
      </activation>
      <distributionManagement>
        <repository>
          <id>incrementals</id>
          <url>${incrementals.url}</url>
        </repository>
      </distributionManagement>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar-no-fork</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <!-- JEP-229 -->
      <id>block-MRP</id>
      <activation>
        <property>
          <name>changelist.format</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-release-plugin</artifactId>
            <configuration>
              <preparationGoals>not-set-up-for-MRP</preparationGoals>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <!--  a profile that disables as much testing as possible whilst still producing the artifacts -->
      <id>quick-build</id>
      <properties>
        <!-- we can not use maven.test.skip because we may be producing a test jar -->
        <skipTests>true</skipTests>
        <spotbugs.skip>true</spotbugs.skip>
        <enforcer.skip>true</enforcer.skip>
        <access-modifier-checker.skip>true</access-modifier-checker.skip>
        <animal.sniffer.skip>true</animal.sniffer.skip>
        <invoker.skip>true</invoker.skip>
        <spotless.check.skip>true</spotless.check.skip>
        <checkstyle.skip>true</checkstyle.skip>
      </properties>
    </profile>
  </profiles>
</project>
