<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.apache.maven.its.mng3743</groupId>
  <artifactId>mng-3743-forkWithPluginManagement</artifactId>
  <version>1</version>
  <packaging>mng3743</packaging>
  
  <name>Integration Test Project for MNG-3743</name>
  <description>
    This project verifies that MNG-3743 is fixed. It is controlled by a JUnit test called org.apache.maven.integrationtests.MNG3743Test
  </description>
  
  <url>https://issues.apache.org/jira/browse/MNG-3743</url>
  
  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.its.mng3743</groupId>
        <artifactId>mng3743-lifecycle</artifactId>
        <version>1</version>
      </extension>
    </extensions>
    
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.3</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.its.mng3743</groupId>
          <artifactId>mavenit-mng3743-check-plugin</artifactId>
          <configuration>
            <skipError>true</skipError>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  
  <reporting>
    <excludeDefaults>true</excludeDefaults>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.its.mng3743</groupId>
        <artifactId>mavenit-mng3743-report-plugin</artifactId>
        <version>1</version>
      </plugin>
    </plugins>
  </reporting>
</project>
