<?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.apache.maven.its.mng3057</groupId>
  <artifactId>mng-3057</artifactId>
  <version>${testVersion}</version>
  <packaging>pom</packaging>
  
  <name>Integration Test Project for MNG-3057</name>
  <description>
    This project verifies that MNG-3057 is fixed.
  </description>
  
  <distributionManagement>
    <repository>
      <id>test-repo</id>
      <url>@deployTo@</url>
    </repository>
  </distributionManagement>
  
  <url>https://issues.apache.org/jira/browse/MNG-3057</url>
  
  <modules>
    <module>level2</module>
  </modules>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.its.plugins</groupId>
        <artifactId>maven-it-plugin-artifact</artifactId>
        <version>2.1-SNAPSHOT</version>
        <executions>
          <execution>
            <!--
               This execution is technically INCORRECT, but should have no effect on the result
               of the build. It is described in MCOMPILER-94, and could interact with the 
               handling of POMs for install and deploy, when packaging == pom. Adding here
               to force the issue and make sure the POM transformation still happens correctly.
            -->
            <id>mcompiler-94</id>
            <phase>validate</phase>
            <goals>
              <goal>set</goal>
            </goals>
            <configuration>
              <mainFile>target/classes</mainFile>
            </configuration>
          </execution>
          <execution>
            <id>install</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>install</goal>
            </goals>
          </execution>
          <execution>
            <id>deploy</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>deploy</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
